The Spring Framework

org.springframework.web.context.request
Class ServletRequestAttributes

java.lang.Object
  extended by org.springframework.web.context.request.AbstractRequestAttributes
      extended by org.springframework.web.context.request.ServletRequestAttributes
All Implemented Interfaces:
RequestAttributes
Direct Known Subclasses:
ServletWebRequest

public class ServletRequestAttributes
extends AbstractRequestAttributes

Servlet-based implementation of the RequestAttributes interface.

Accesses objects from servlet request and HTTP session scope, with no distinction between "session" and "global session".

Since:
2.0
Author:
Juergen Hoeller
See Also:
ServletRequest.getAttribute(java.lang.String), HttpSession.getAttribute(java.lang.String)

Field Summary
static String DESTRUCTION_CALLBACK_NAME_PREFIX
          Constant identifying the String prefixed to the name of a destruction callback when it is stored in a HttpSession.
 
Fields inherited from class org.springframework.web.context.request.AbstractRequestAttributes
requestDestructionCallbacks
 
Fields inherited from interface org.springframework.web.context.request.RequestAttributes
SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION
 
Constructor Summary
ServletRequestAttributes(HttpServletRequest request)
          Create a new ServletRequestAttributes instance for the given request.
 
Method Summary
 Object getAttribute(String name, int scope)
          Return the value for the scoped attribute of the given name, if any.
protected  HttpServletRequest getRequest()
          Exposes the HttpServletRequest that we're wrapping to subclasses.
 String getSessionId()
          Return an id for the current underlying session.
 Object getSessionMutex()
          Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.
 void registerDestructionCallback(String name, Runnable callback, int scope)
          Register a callback to be executed at destruction of the specified attribute in the given scope.
 void removeAttribute(String name, int scope)
          Remove the scoped attribute of the given name, if it exists.
 void setAttribute(String name, Object value, int scope)
          Set the value for the scoped attribute of the given name.
protected  void updateAccessedSessionAttributes()
          Update all accessed session attributes through session.setAttribute calls, explicitly indicating to the container that they might have been modified.
 
Methods inherited from class org.springframework.web.context.request.AbstractRequestAttributes
registerRequestDestructionCallback, removeRequestDestructionCallback, requestCompleted
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DESTRUCTION_CALLBACK_NAME_PREFIX

public static final String DESTRUCTION_CALLBACK_NAME_PREFIX
Constant identifying the String prefixed to the name of a destruction callback when it is stored in a HttpSession.

Constructor Detail

ServletRequestAttributes

public ServletRequestAttributes(HttpServletRequest request)
Create a new ServletRequestAttributes instance for the given request.

Parameters:
request - current HTTP request
Method Detail

getRequest

protected final HttpServletRequest getRequest()
Exposes the HttpServletRequest that we're wrapping to subclasses.


getAttribute

public Object getAttribute(String name,
                           int scope)
Description copied from interface: RequestAttributes
Return the value for the scoped attribute of the given name, if any.

Parameters:
name - the name of the attribute
scope - the scope identifier
Returns:
the current attribute value, or null if not found

setAttribute

public void setAttribute(String name,
                         Object value,
                         int scope)
Description copied from interface: RequestAttributes
Set the value for the scoped attribute of the given name. Replaces an existing value, if any.

Parameters:
name - the name of the attribute
value - the value for the attribute
scope - the scope identifier

removeAttribute

public void removeAttribute(String name,
                            int scope)
Description copied from interface: RequestAttributes
Remove the scoped attribute of the given name, if it exists.

Parameters:
name - the name of the attribute
scope - the scope identifier

registerDestructionCallback

public void registerDestructionCallback(String name,
                                        Runnable callback,
                                        int scope)
Description copied from interface: RequestAttributes
Register a callback to be executed at destruction of the specified attribute in the given scope.

Implementations should do their best to execute the callback at the appropriate time: that is, at request completion or session termination, respectively. If such a callback is not supported by the underlying runtime environment, the callback must be ignored and a corresponding warning should be logged.

Note that destruction usually corresponds to destruction of the entire scope, not to the individual attribute having been removed. If an attribute gets removed via this facade's RequestAttributes.removeAttribute(String, int) method, any registered destruction callback should be disabled as well (assuming that the removed object will be reused or manually destroyed).

Parameters:
name - the name of the attribute to register the callback for
callback - the destruction callback to be executed
scope - the scope identifier

getSessionId

public String getSessionId()
Description copied from interface: RequestAttributes
Return an id for the current underlying session.


getSessionMutex

public Object getSessionMutex()
Description copied from interface: RequestAttributes
Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.


updateAccessedSessionAttributes

protected void updateAccessedSessionAttributes()
Update all accessed session attributes through session.setAttribute calls, explicitly indicating to the container that they might have been modified.

Specified by:
updateAccessedSessionAttributes in class AbstractRequestAttributes

The Spring Framework

Copyright © 2002-2006 The Spring Framework.