public class FacesWebRequest extends FacesRequestAttributes implements NativeWebRequest
REFERENCE_REQUEST, REFERENCE_SESSION, SCOPE_REQUEST, SCOPE_SESSION| Constructor and Description |
|---|
FacesWebRequest(FacesContext facesContext)
Create a new FacesWebRequest adapter for the given FacesContext.
|
| 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(String eTag)
Check whether the requested resource has been modified given the
supplied
ETag (entity tag), as determined by the application. |
boolean |
checkNotModified(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. |
String |
getContextPath()
Return the context path for this request
(usually the base path that the current web application is mapped to).
|
String |
getDescription(boolean includeClientInfo)
Get a short description of this request,
typically containing request URI and session id.
|
String |
getHeader(String headerName)
Return the request header of the given name, or
null if none. |
Iterator<String> |
getHeaderNames()
Return an Iterator over request header names.
|
String[] |
getHeaderValues(String headerName)
Return the request header values for the given header name,
or
null if none. |
Locale |
getLocale()
Return the primary Locale for this request.
|
Object |
getNativeRequest()
Return the underlying native request object.
|
<T> T |
getNativeRequest(Class<T> requiredType)
Return the underlying native request object, if available.
|
Object |
getNativeResponse()
Return the underlying native response object, if any.
|
<T> T |
getNativeResponse(Class<T> requiredType)
Return the underlying native response object, if available.
|
String |
getParameter(String paramName)
Return the request parameter of the given name, or
null if none. |
Map<String,String[]> |
getParameterMap()
Return an immutable Map of the request parameters, with parameter names as map keys
and parameter values as map values.
|
Iterator<String> |
getParameterNames()
Return an Iterator over request parameter names.
|
String[] |
getParameterValues(String paramName)
Return the request parameter values for the given parameter name,
or
null if none. |
String |
getRemoteUser()
Return the remote user for this request, if any.
|
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(String role)
Determine whether the user is in the given role for this request.
|
String |
toString() |
getAttribute, getAttributeMap, getAttributeNames, getExternalContext, getFacesContext, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttributeclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAttribute, getAttributeNames, getSessionId, getSessionMutex, registerDestructionCallback, removeAttribute, resolveReference, setAttributepublic FacesWebRequest(FacesContext facesContext)
facesContext - the current FacesContextFacesContext.getCurrentInstance()public Object getNativeRequest()
NativeWebRequestgetNativeRequest in interface NativeWebRequestHttpServletRequestpublic Object getNativeResponse()
NativeWebRequestgetNativeResponse in interface NativeWebRequestHttpServletResponsepublic <T> T getNativeRequest(@Nullable Class<T> requiredType)
NativeWebRequestgetNativeRequest in interface NativeWebRequestrequiredType - the desired type of request objectnull if none
of that type is availableHttpServletRequestpublic <T> T getNativeResponse(@Nullable Class<T> requiredType)
NativeWebRequestgetNativeResponse in interface NativeWebRequestrequiredType - the desired type of response objectnull if none
of that type is availableHttpServletResponse@Nullable public String getHeader(String headerName)
WebRequestnull if none.
Retrieves the first header value in case of a multi-value header.
getHeader in interface WebRequestHttpServletRequest.getHeader(String)@Nullable public String[] getHeaderValues(String headerName)
WebRequestnull if none.
A single-value header will be exposed as an array with a single element.
getHeaderValues in interface WebRequestHttpServletRequest.getHeaders(String)public Iterator<String> getHeaderNames()
WebRequestgetHeaderNames in interface WebRequestHttpServletRequest.getHeaderNames()@Nullable public String getParameter(String paramName)
WebRequestnull if none.
Retrieves the first parameter value in case of a multi-value parameter.
getParameter in interface WebRequestServletRequest.getParameter(String)public Iterator<String> getParameterNames()
WebRequestgetParameterNames in interface WebRequestServletRequest.getParameterNames()@Nullable public String[] getParameterValues(String paramName)
WebRequestnull if none.
A single-value parameter will be exposed as an array with a single element.
getParameterValues in interface WebRequestServletRequest.getParameterValues(String)public Map<String,String[]> getParameterMap()
WebRequestA single-value parameter will be exposed as an array with a single element.
getParameterMap in interface WebRequestServletRequest.getParameterMap()public Locale getLocale()
WebRequestgetLocale in interface WebRequestServletRequest.getLocale()public String getContextPath()
WebRequestgetContextPath in interface WebRequestHttpServletRequest.getContextPath()@Nullable public String getRemoteUser()
WebRequestgetRemoteUser in interface WebRequestHttpServletRequest.getRemoteUser()@Nullable public Principal getUserPrincipal()
WebRequestgetUserPrincipal in interface WebRequestHttpServletRequest.getUserPrincipal()public boolean isUserInRole(String role)
WebRequestisUserInRole in interface WebRequestHttpServletRequest.isUserInRole(String)public boolean isSecure()
WebRequestisSecure in interface WebRequestServletRequest.isSecure()public boolean checkNotModified(long lastModifiedTimestamp)
WebRequestThis 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; or
WebRequest.checkNotModified(String). If you want to enforce both
a strong entity tag and a Last-Modified value,
as recommended by the HTTP specification,
then you should use WebRequest.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 in interface WebRequestlastModifiedTimestamp - the last-modified timestamp in
milliseconds that the application determined for the underlying
resourcepublic boolean checkNotModified(@Nullable String eTag)
WebRequestETag (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; or
WebRequest.checkNotModified(long). If you want to enforce both
a strong entity tag and a Last-Modified value,
as recommended by the HTTP specification,
then you should use WebRequest.checkNotModified(String, long).
checkNotModified in interface WebRequesteTag - the entity tag that the application determined
for the underlying resource. This parameter will be padded
with quotes (") if necessary.public boolean checkNotModified(@Nullable String etag, long lastModifiedTimestamp)
WebRequestETag (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) or
WebRequest.checkNotModified(long).
checkNotModified in interface WebRequestetag - 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
resourcepublic String getDescription(boolean includeClientInfo)
WebRequestgetDescription in interface WebRequestincludeClientInfo - whether to include client-specific
information such as session id and user name