Top Description Fields Methods
org.springframework.web.context.request

public Interface RequestAttributes

Known Direct Subinterfaces
org.springframework.web.context.request.WebRequest
Known Direct Implementers
org.springframework.web.context.request.AbstractRequestAttributes, org.springframework.web.context.request.FacesRequestAttributes
Imports
org.springframework.lang.Nullable

Abstraction for accessing attribute objects associated with a request. Supports access to request-scoped attributes as well as to session-scoped attributes, with the optional notion of a "global session".

Can be implemented for any kind of request/session mechanism, in particular for servlet requests.

Author
Juergen Hoeller
Since
2.0
See Also
ServletRequestAttributes

Field Summary

Modifier and TypeField and Description
public static final String
REFERENCE_REQUEST

Name of the standard reference to the request object: "request".

public static final String
REFERENCE_SESSION

Name of the standard reference to the session object: "session".

public static final int
SCOPE_REQUEST

Constant that indicates request scope.

public static final int
SCOPE_SESSION

Constant that indicates session scope.

Method Summary

Modifier and TypeMethod and Description
public Object

Returns:

the current attribute value, or null if not found
getAttribute
(String
the name of the attribute
name
,
int
the scope identifier
scope
)

Return the value for the scoped attribute of the given name, if any.

public String[]

Returns:

the attribute names as String array
getAttributeNames
(int
the scope identifier
scope
)

Retrieve the names of all attributes in the scope.

public String

Returns:

the session id as String (never null)
getSessionId
()

Return an id for the current underlying session.

public Object

Returns:

the session mutex to use (never null)
getSessionMutex
()

Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.

public void
registerDestructionCallback(String
the name of the attribute to register the callback for
name
,
Runnable
the destruction callback to be executed
callback
,
int
the scope identifier
scope
)

Register a callback to be executed on destruction of the specified attribute in the given scope.

public void
removeAttribute(String
the name of the attribute
name
,
int
the scope identifier
scope
)

Remove the scoped attribute of the given name, if it exists.

public Object

Returns:

the corresponding object, or null if none found
resolveReference
(String
the contextual key
key
)

Resolve the contextual reference for the given key, if any.

public void
setAttribute(String
the name of the attribute
name
,
Object
the value for the attribute
value
,
int
the scope identifier
scope
)

Set the value for the scoped attribute of the given name, replacing an existing value (if any).

Field Detail

REFERENCE_REQUESTback to summary
public static final String REFERENCE_REQUEST

Name of the standard reference to the request object: "request".

See Also
resolveReference
REFERENCE_SESSIONback to summary
public static final String REFERENCE_SESSION

Name of the standard reference to the session object: "session".

See Also
resolveReference
SCOPE_REQUESTback to summary
public static final int SCOPE_REQUEST

Constant that indicates request scope.

SCOPE_SESSIONback to summary
public static final int SCOPE_SESSION

Constant that indicates session scope.

This preferably refers to a locally isolated session, if such a distinction is available. Else, it simply refers to the common session.

Method Detail

getAttributeback to summary
public Object getAttribute(String name, int scope)

Return the value for the scoped attribute of the given name, if any.

Parameters
name:String

the name of the attribute

scope:int

the scope identifier

Returns:Object

the current attribute value, or null if not found

Annotations
@Nullable
getAttributeNamesback to summary
public String[] getAttributeNames(int scope)

Retrieve the names of all attributes in the scope.

Parameters
scope:int

the scope identifier

Returns:String[]

the attribute names as String array

getSessionIdback to summary
public String getSessionId()

Return an id for the current underlying session.

Returns:String

the session id as String (never null)

getSessionMutexback to summary
public Object getSessionMutex()

Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.

Returns:Object

the session mutex to use (never null)

registerDestructionCallbackback to summary
public void registerDestructionCallback(String name, Runnable callback, int scope)

Register a callback to be executed on 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 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.

Parameters
name:String

the name of the attribute to register the callback for

callback:Runnable

the destruction callback to be executed

scope:int

the scope identifier

removeAttributeback to summary
public void removeAttribute(String name, int scope)

Remove the scoped attribute of the given name, if it exists.

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).

Parameters
name:String

the name of the attribute

scope:int

the scope identifier

resolveReferenceback to summary
public Object resolveReference(String key)

Resolve the contextual reference for the given key, if any.

At a minimum: the HttpServletRequest reference for key "request", and the HttpSession reference for key "session".

Parameters
key:String

the contextual key

Returns:Object

the corresponding object, or null if none found

Annotations
@Nullable
setAttributeback to summary
public 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).

Parameters
name:String

the name of the attribute

value:Object

the value for the attribute

scope:int

the scope identifier