public interface RequestAttributes
Can be implemented for any kind of request/session mechanism, in particular for servlet requests.
ServletRequestAttributes
Modifier and Type | Field and Description |
---|---|
static String |
REFERENCE_REQUEST
Name of the standard reference to the request object: "request".
|
static String |
REFERENCE_SESSION
Name of the standard reference to the session object: "session".
|
static int |
SCOPE_REQUEST
Constant that indicates request scope.
|
static int |
SCOPE_SESSION
Constant that indicates session scope.
|
Modifier and Type | Method and Description |
---|---|
Object |
getAttribute(String name,
int scope)
Return the value for the scoped attribute of the given name, if any.
|
String[] |
getAttributeNames(int scope)
Retrieve the names of all attributes in the scope.
|
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 on 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.
|
Object |
resolveReference(String key)
Resolve the contextual reference for the given key, if any.
|
void |
setAttribute(String name,
Object value,
int scope)
Set the value for the scoped attribute of the given name,
replacing an existing value (if any).
|
static final int SCOPE_REQUEST
static final int SCOPE_SESSION
This preferably refers to a locally isolated session, if such a distinction is available (for example, in a Portlet environment). Else, it simply refers to the common session.
static final String REFERENCE_REQUEST
static final String REFERENCE_SESSION
@Nullable Object getAttribute(String name, int scope)
name
- the name of the attributescope
- the scope identifiernull
if not foundvoid setAttribute(String name, Object value, int scope)
name
- the name of the attributescope
- the scope identifiervalue
- the value for the attributevoid removeAttribute(String name, int scope)
Note that an implementation should also remove a registered destruction callback for the specified attribute, if any. It does, however, not need to execute a registered destruction callback in this case, since the object will be destroyed by the caller (if appropriate).
name
- the name of the attributescope
- the scope identifierString[] getAttributeNames(int scope)
scope
- the scope identifiervoid registerDestructionCallback(String name, Runnable callback, int 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 explicitly
removed by the application. If an attribute gets removed via this
facade's removeAttribute(String, int)
method, any registered
destruction callback should be disabled as well, assuming that the
removed object will be reused or manually destroyed.
NOTE: Callback objects should generally be serializable if they are being registered for a session scope. Otherwise the callback (or even the entire session) might not survive web app restarts.
name
- the name of the attribute to register the callback forcallback
- the destruction callback to be executedscope
- the scope identifier@Nullable Object resolveReference(String key)
At a minimum: the HttpServletRequest/PortletRequest reference for key "request", and the HttpSession/PortletSession reference for key "session".
key
- the contextual keynull
if none foundString getSessionId()
null
)Object getSessionMutex()
null
)