接口 RequestAttributes
- 所有已知子接口:
AsyncWebRequest
,NativeWebRequest
,WebRequest
- 所有已知实现类:
AbstractRequestAttributes
,DispatcherServletWebRequest
,FacesRequestAttributes
,FacesWebRequest
,ServletRequestAttributes
,ServletWebRequest
,StandardServletAsyncWebRequest
public interface RequestAttributes
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.
- 从以下版本开始:
- 2.0
- 作者:
- Juergen Hoeller
- 另请参阅:
ServletRequestAttributes
字段概要
字段 修饰符和类型 字段 说明 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.
方法概要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 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).
字段详细资料
SCOPE_REQUEST
static final int SCOPE_REQUEST
Constant that indicates request scope.- 另请参阅:
- 常量字段值
SCOPE_SESSION
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.
- 另请参阅:
- 常量字段值
REFERENCE_REQUEST
static final String REFERENCE_REQUEST
Name of the standard reference to the request object: "request".
REFERENCE_SESSION
static final String REFERENCE_SESSION
Name of the standard reference to the session object: "session".
方法详细资料
getAttribute
@Nullable Object getAttribute(String name, int scope)
Return the value for the scoped attribute of the given name, if any.- 参数:
name
- the name of the attributescope
- the scope identifier- 返回:
- the current attribute value, or
null
if not found
setAttribute
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).- 参数:
name
- the name of the attributescope
- the scope identifiervalue
- the value for the attribute
removeAttribute
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).
- 参数:
name
- the name of the attributescope
- the scope identifier
getAttributeNames
String[] getAttributeNames(int scope)
Retrieve the names of all attributes in the scope.- 参数:
scope
- the scope identifier- 返回:
- the attribute names as String array
registerDestructionCallback
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.
- 参数:
name
- the name of the attribute to register the callback forcallback
- the destruction callback to be executedscope
- the scope identifier
resolveReference
@Nullable 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".
- 参数:
key
- the contextual key- 返回:
- the corresponding object, or
null
if none found
getSessionId
String getSessionId()
Return an id for the current underlying session.- 返回:
- the session id as String (never
null
)
getSessionMutex
Object getSessionMutex()
Expose the best available mutex for the underlying session: that is, an object to synchronize on for the underlying session.- 返回:
- the session mutex to use (never
null
)