类 ServletWebRequest
- java.lang.Object
- org.springframework.web.context.request.AbstractRequestAttributes
- org.springframework.web.context.request.ServletRequestAttributes
- org.springframework.web.context.request.ServletWebRequest
- 所有已实现的接口:
NativeWebRequest,RequestAttributes,WebRequest
public class ServletWebRequest extends ServletRequestAttributes implements NativeWebRequest
WebRequestadapter for anHttpServletRequest.- 从以下版本开始:
- 2.0
- 作者:
- Juergen Hoeller, Brian Clozel, Markus Malkusch
字段概要
从类继承的字段 org.springframework.web.context.request.ServletRequestAttributes
DESTRUCTION_CALLBACK_NAME_PREFIX, immutableValueTypes
从类继承的字段 org.springframework.web.context.request.AbstractRequestAttributes
requestDestructionCallbacks
从接口继承的字段 org.springframework.web.context.request.RequestAttributes
REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_REQUEST, SCOPE_SESSION
构造器概要
构造器 构造器 说明 ServletWebRequest(HttpServletRequest request)Create a new ServletWebRequest instance for the given request.ServletWebRequest(HttpServletRequest request, HttpServletResponse response)Create a new ServletWebRequest instance for the given request/response pair.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 booleancheckNotModified(long lastModifiedTimestamp)Check whether the requested resource has been modified given the supplied last-modified timestamp (as determined by the application).booleancheckNotModified(String etag)Check whether the requested resource has been modified given the suppliedETag(entity tag), as determined by the application.booleancheckNotModified(String etag, long lastModifiedTimestamp)Check whether the requested resource has been modified given the suppliedETag(entity tag) and last-modified timestamp, as determined by the application.StringgetContextPath()Return the context path for this request (usually the base path that the current web application is mapped to).StringgetDescription(boolean includeClientInfo)Get a short description of this request, typically containing request URI and session id.StringgetHeader(String headerName)Return the request header of the given name, ornullif none.Iterator<String>getHeaderNames()Return a Iterator over request header names.String[]getHeaderValues(String headerName)Return the request header values for the given header name, ornullif none.HttpMethodgetHttpMethod()Return the HTTP method of the request.LocalegetLocale()Return the primary Locale for this request.ObjectgetNativeRequest()Return the underlying native request object.<T> TgetNativeRequest(Class<T> requiredType)Return the underlying native request object, if available.ObjectgetNativeResponse()Return the underlying native response object, if any.<T> TgetNativeResponse(Class<T> requiredType)Return the underlying native response object, if available.StringgetParameter(String paramName)Return the request parameter of the given name, ornullif none.Map<String,String[]>getParameterMap()Return a immutable Map of the request parameters, with parameter names as map keys and parameter values as map values.Iterator<String>getParameterNames()Return a Iterator over request parameter names.String[]getParameterValues(String paramName)Return the request parameter values for the given parameter name, ornullif none.StringgetRemoteUser()Return the remote user for this request, if any.PrincipalgetUserPrincipal()Return the user principal for this request, if any.booleanisNotModified()booleanisSecure()Return whether this request has been sent over a secure transport mechanism (such as SSL).booleanisUserInRole(String role)Determine whether the user is in the given role for this request.StringtoString()从类继承的方法 org.springframework.web.context.request.ServletRequestAttributes
getAttribute, getAttributeNames, getRequest, getResponse, getSession, getSessionId, getSessionMutex, isImmutableSessionAttribute, registerDestructionCallback, registerSessionDestructionCallback, removeAttribute, resolveReference, setAttribute, updateAccessedSessionAttributes
从类继承的方法 org.springframework.web.context.request.AbstractRequestAttributes
isRequestActive, registerRequestDestructionCallback, removeRequestDestructionCallback, requestCompleted
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
从接口继承的方法 org.springframework.web.context.request.RequestAttributes
getAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute
构造器详细资料
ServletWebRequest
public ServletWebRequest(HttpServletRequest request)
Create a new ServletWebRequest instance for the given request.- 参数:
request- current HTTP request
ServletWebRequest
public ServletWebRequest(HttpServletRequest request, @Nullable HttpServletResponse response)
Create a new ServletWebRequest instance for the given request/response pair.- 参数:
request- current HTTP requestresponse- current HTTP response (for automatic last-modified handling)
方法详细资料
getNativeRequest
public Object getNativeRequest()
从接口复制的说明:NativeWebRequestReturn the underlying native request object.- 指定者:
getNativeRequest在接口中NativeWebRequest- 另请参阅:
HttpServletRequest
getNativeResponse
public Object getNativeResponse()
从接口复制的说明:NativeWebRequestReturn the underlying native response object, if any.- 指定者:
getNativeResponse在接口中NativeWebRequest- 另请参阅:
HttpServletResponse
getNativeRequest
public <T> T getNativeRequest(@Nullable Class<T> requiredType)
从接口复制的说明:NativeWebRequestReturn the underlying native request object, if available.- 指定者:
getNativeRequest在接口中NativeWebRequest- 参数:
requiredType- the desired type of request object- 返回:
- the matching request object, or
nullif none of that type is available - 另请参阅:
HttpServletRequest
getNativeResponse
public <T> T getNativeResponse(@Nullable Class<T> requiredType)
从接口复制的说明:NativeWebRequestReturn the underlying native response object, if available.- 指定者:
getNativeResponse在接口中NativeWebRequest- 参数:
requiredType- the desired type of response object- 返回:
- the matching response object, or
nullif none of that type is available - 另请参阅:
HttpServletResponse
getHttpMethod
@Nullable public HttpMethod getHttpMethod()
Return the HTTP method of the request.- 从以下版本开始:
- 4.0.2
getHeader
@Nullable public String getHeader(String headerName)
从接口复制的说明:WebRequestReturn the request header of the given name, ornullif none.Retrieves the first header value in case of a multi-value header.
- 指定者:
getHeader在接口中WebRequest- 另请参阅:
HttpServletRequest.getHeader(String)
getHeaderValues
@Nullable public String[] getHeaderValues(String headerName)
从接口复制的说明:WebRequestReturn the request header values for the given header name, ornullif none.A single-value header will be exposed as an array with a single element.
getHeaderNames
public Iterator<String> getHeaderNames()
从接口复制的说明:WebRequestReturn a Iterator over request header names.- 指定者:
getHeaderNames在接口中WebRequest- 另请参阅:
HttpServletRequest.getHeaderNames()
getParameter
@Nullable public String getParameter(String paramName)
从接口复制的说明:WebRequestReturn the request parameter of the given name, ornullif none.Retrieves the first parameter value in case of a multi-value parameter.
- 指定者:
getParameter在接口中WebRequest- 另请参阅:
ServletRequest.getParameter(String)
getParameterValues
@Nullable public String[] getParameterValues(String paramName)
从接口复制的说明:WebRequestReturn the request parameter values for the given parameter name, ornullif none.A single-value parameter will be exposed as an array with a single element.
getParameterNames
public Iterator<String> getParameterNames()
从接口复制的说明:WebRequestReturn a Iterator over request parameter names.
getParameterMap
public Map<String,String[]> getParameterMap()
从接口复制的说明:WebRequestReturn a immutable Map of the request parameters, with parameter names as map keys and parameter values as map values. The map values will be of type String array.A single-value parameter will be exposed as an array with a single element.
- 指定者:
getParameterMap在接口中WebRequest- 另请参阅:
ServletRequest.getParameterMap()
getLocale
public Locale getLocale()
从接口复制的说明:WebRequestReturn the primary Locale for this request.- 指定者:
getLocale在接口中WebRequest- 另请参阅:
ServletRequest.getLocale()
getContextPath
public String getContextPath()
从接口复制的说明:WebRequestReturn the context path for this request (usually the base path that the current web application is mapped to).- 指定者:
getContextPath在接口中WebRequest- 另请参阅:
HttpServletRequest.getContextPath()
getRemoteUser
@Nullable public String getRemoteUser()
从接口复制的说明:WebRequestReturn the remote user for this request, if any.- 指定者:
getRemoteUser在接口中WebRequest- 另请参阅:
HttpServletRequest.getRemoteUser()
getUserPrincipal
@Nullable public Principal getUserPrincipal()
从接口复制的说明:WebRequestReturn the user principal for this request, if any.
isUserInRole
public boolean isUserInRole(String role)
从接口复制的说明:WebRequestDetermine whether the user is in the given role for this request.
isSecure
public boolean isSecure()
从接口复制的说明:WebRequestReturn whether this request has been sent over a secure transport mechanism (such as SSL).- 指定者:
isSecure在接口中WebRequest- 另请参阅:
ServletRequest.isSecure()
checkNotModified
public boolean checkNotModified(long lastModifiedTimestamp)
从接口复制的说明:WebRequestCheck whether the requested resource has been modified given the supplied last-modified timestamp (as determined by the application).This will also transparently set the "Last-Modified" response header and HTTP status when applicable.
Typical usage:
public String myHandleMethod(WebRequest request, Model model) { long lastModified = // application-specific calculation if (request.checkNotModified(lastModified)) { // shortcut exit - no further processing necessary return null; } // further request processing, actually building content model.addAttribute(...); return "myViewName"; }This method works with conditional GET/HEAD requests, but also with conditional POST/PUT/DELETE requests.
Note: you can use either this
#checkNotModified(long)method; orWebRequest.checkNotModified(String). If you want enforce both a strong entity tag and a Last-Modified value, as recommended by the HTTP specification, then you should useWebRequest.checkNotModified(String, long).If the "If-Modified-Since" header is set but cannot be parsed to a date value, this method will ignore the header and proceed with setting the last-modified timestamp on the response.
- 指定者:
checkNotModified在接口中WebRequest- 参数:
lastModifiedTimestamp- the last-modified timestamp in milliseconds that the application determined for the underlying resource- 返回:
- whether the request qualifies as not modified, allowing to abort request processing and relying on the response telling the client that the content has not been modified
checkNotModified
public boolean checkNotModified(String etag)
从接口复制的说明:WebRequestCheck whether the requested resource has been modified given the suppliedETag(entity tag), as determined by the application.This will also transparently set the "ETag" response header and HTTP status when applicable.
Typical usage:
public String myHandleMethod(WebRequest request, Model model) { String eTag = // application-specific calculation if (request.checkNotModified(eTag)) { // shortcut exit - no further processing necessary return null; } // further request processing, actually building content model.addAttribute(...); return "myViewName"; }Note: you can use either this
#checkNotModified(String)method; orWebRequest.checkNotModified(long). If you want enforce both a strong entity tag and a Last-Modified value, as recommended by the HTTP specification, then you should useWebRequest.checkNotModified(String, long).- 指定者:
checkNotModified在接口中WebRequest- 参数:
etag- the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.- 返回:
- true if the request does not require further processing.
checkNotModified
public boolean checkNotModified(@Nullable String etag, long lastModifiedTimestamp)
从接口复制的说明:WebRequestCheck whether the requested resource has been modified given the suppliedETag(entity tag) and last-modified timestamp, as determined by the application.This will also transparently set the "ETag" and "Last-Modified" response headers, and HTTP status when applicable.
Typical usage:
public String myHandleMethod(WebRequest request, Model model) { String eTag = // application-specific calculation long lastModified = // application-specific calculation if (request.checkNotModified(eTag, lastModified)) { // shortcut exit - no further processing necessary return null; } // further request processing, actually building content model.addAttribute(...); return "myViewName"; }This method works with conditional GET/HEAD requests, but also with conditional POST/PUT/DELETE requests.
Note: The HTTP specification recommends setting both ETag and Last-Modified values, but you can also use
#checkNotModified(String)orWebRequest.checkNotModified(long).- 指定者:
checkNotModified在接口中WebRequest- 参数:
etag- the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.lastModifiedTimestamp- the last-modified timestamp in milliseconds that the application determined for the underlying resource- 返回:
- true if the request does not require further processing.
isNotModified
public boolean isNotModified()
getDescription
public String getDescription(boolean includeClientInfo)
从接口复制的说明:WebRequestGet a short description of this request, typically containing request URI and session id.- 指定者:
getDescription在接口中WebRequest- 参数:
includeClientInfo- whether to include client-specific information such as session id and user name- 返回:
- the requested description as String
toString
public String toString()
- 覆盖:
toString在类中ServletRequestAttributes