public interface WebRequest extends RequestAttributes
WebRequestInterceptor
REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_GLOBAL_SESSION, SCOPE_REQUEST, SCOPE_SESSION
Modifier and Type | Method and Description |
---|---|
boolean |
checkNotModified(long lastModifiedTimestamp)
Check whether the requested resource has been modified given the
supplied last-modified timestamp (as determined by the application).
|
boolean |
checkNotModified(java.lang.String etag)
Check whether the requested resource has been modified given the
supplied
ETag (entity tag), as determined by the application. |
boolean |
checkNotModified(java.lang.String etag,
long lastModifiedTimestamp)
Check whether the requested resource has been modified given the
supplied
ETag (entity tag) and last-modified timestamp,
as determined by the application. |
java.lang.String |
getContextPath()
Return the context path for this request
(usually the base path that the current web application is mapped to).
|
java.lang.String |
getDescription(boolean includeClientInfo)
Get a short description of this request,
typically containing request URI and session id.
|
java.lang.String |
getHeader(java.lang.String headerName)
Return the request header of the given name, or
null if none. |
java.util.Iterator<java.lang.String> |
getHeaderNames()
Return a Iterator over request header names.
|
java.lang.String[] |
getHeaderValues(java.lang.String headerName)
Return the request header values for the given header name,
or
null if none. |
java.util.Locale |
getLocale()
Return the primary Locale for this request.
|
java.lang.String |
getParameter(java.lang.String paramName)
Return the request parameter of the given name, or
null if none. |
java.util.Map<java.lang.String,java.lang.String[]> |
getParameterMap()
Return a immutable Map of the request parameters, with parameter names as map keys
and parameter values as map values.
|
java.util.Iterator<java.lang.String> |
getParameterNames()
Return a Iterator over request parameter names.
|
java.lang.String[] |
getParameterValues(java.lang.String paramName)
Return the request parameter values for the given parameter name,
or
null if none. |
java.lang.String |
getRemoteUser()
Return the remote user for this request, if any.
|
java.security.Principal |
getUserPrincipal()
Return the user principal for this request, if any.
|
boolean |
isSecure()
Return whether this request has been sent over a secure transport
mechanism (such as SSL).
|
boolean |
isUserInRole(java.lang.String role)
Determine whether the user is in the given role for this request.
|
getAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttribute
java.lang.String getHeader(java.lang.String headerName)
null
if none.
Retrieves the first header value in case of a multi-value header.
javax.servlet.http.HttpServletRequest#getHeader(String)
java.lang.String[] getHeaderValues(java.lang.String headerName)
null
if none.
A single-value header will be exposed as an array with a single element.
javax.servlet.http.HttpServletRequest#getHeaders(String)
java.util.Iterator<java.lang.String> getHeaderNames()
javax.servlet.http.HttpServletRequest#getHeaderNames()
java.lang.String getParameter(java.lang.String paramName)
null
if none.
Retrieves the first parameter value in case of a multi-value parameter.
javax.servlet.http.HttpServletRequest#getParameter(String)
java.lang.String[] getParameterValues(java.lang.String paramName)
null
if none.
A single-value parameter will be exposed as an array with a single element.
javax.servlet.http.HttpServletRequest#getParameterValues(String)
java.util.Iterator<java.lang.String> getParameterNames()
javax.servlet.http.HttpServletRequest#getParameterNames()
java.util.Map<java.lang.String,java.lang.String[]> getParameterMap()
A single-value parameter will be exposed as an array with a single element.
javax.servlet.http.HttpServletRequest#getParameterMap()
java.util.Locale getLocale()
javax.servlet.http.HttpServletRequest#getLocale()
java.lang.String getContextPath()
javax.servlet.http.HttpServletRequest#getContextPath()
java.lang.String getRemoteUser()
javax.servlet.http.HttpServletRequest#getRemoteUser()
java.security.Principal getUserPrincipal()
javax.servlet.http.HttpServletRequest#getUserPrincipal()
boolean isUserInRole(java.lang.String role)
javax.servlet.http.HttpServletRequest#isUserInRole(String)
boolean isSecure()
javax.servlet.http.HttpServletRequest#isSecure()
boolean checkNotModified(long lastModifiedTimestamp)
This will also transparently set the "Last-Modified" response header and HTTP status when applicable.
Typical usage:
public String myHandleMethod(WebRequest webRequest, 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; or
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 use 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.
lastModifiedTimestamp
- the last-modified timestamp in
milliseconds that the application determined for the underlying
resourceboolean checkNotModified(java.lang.String etag)
ETag
(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 webRequest, 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; or
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 use checkNotModified(String, long)
.
etag
- the entity tag that the application determined
for the underlying resource. This parameter will be padded
with quotes (") if necessary.boolean checkNotModified(java.lang.String etag, long lastModifiedTimestamp)
ETag
(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 webRequest, 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)
or
checkNotModified(long)
.
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
resourcejava.lang.String getDescription(boolean includeClientInfo)
includeClientInfo
- whether to include client-specific
information such as session id and user name