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

public Interface WebRequest

extends RequestAttributes
Known Direct Subinterfaces
org.springframework.web.context.request.NativeWebRequest
Imports
java.security.Principal, java.util.Iterator, .Locale, .Map, org.springframework.lang.Nullable

Generic interface for a web request. Mainly intended for generic web request interceptors, giving them access to general request metadata, not for actual handling of the request.
Authors
Juergen Hoeller, Brian Clozel
Since
2.0
See Also
WebRequestInterceptor

Field Summary

Inherited from org.springframework.web.context.request.RequestAttributes:
REFERENCE_REQUESTREFERENCE_SESSIONSCOPE_REQUESTSCOPE_SESSION

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

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
(long
the last-modified timestamp in milliseconds that the application determined for the underlying resource
lastModifiedTimestamp
)

Check whether the requested resource has been modified given the supplied last-modified timestamp (as determined by the application).

public boolean

Returns:

true if the request does not require further processing.
checkNotModified
(String
the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.
etag
)

Check whether the requested resource has been modified given the supplied ETag (entity tag), as determined by the application.

public boolean

Returns:

true if the request does not require further processing.
checkNotModified
(String
the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.
etag
,
long
the last-modified timestamp in milliseconds that the application determined for the underlying resource
lastModifiedTimestamp
)

Check whether the requested resource has been modified given the supplied ETag (entity tag) and last-modified timestamp, as determined by the application.

public String
getContextPath()

Return the context path for this request (usually the base path that the current web application is mapped to).

public String

Returns:

the requested description as String
getDescription
(boolean
whether to include client-specific information such as session id and user name
includeClientInfo
)

Get a short description of this request, typically containing request URI and session id.

public String
getHeader(String headerName)

Return the request header of the given name, or null if none.

public Iterator<String>
getHeaderNames()

Return an Iterator over request header names.

public String[]
getHeaderValues(String headerName)

Return the request header values for the given header name, or null if none.

public Locale
getLocale()

Return the primary Locale for this request.

public String
getParameter(String paramName)

Return the request parameter of the given name, or null if none.

public Map<String, String[]>
getParameterMap()

Return an immutable Map of the request parameters, with parameter names as map keys and parameter values as map values.

public Iterator<String>
getParameterNames()

Return an Iterator over request parameter names.

public String[]
getParameterValues(String paramName)

Return the request parameter values for the given parameter name, or null if none.

public String
getRemoteUser()

Return the remote user for this request, if any.

public Principal
getUserPrincipal()

Return the user principal for this request, if any.

public boolean
isSecure()

Return whether this request has been sent over a secure transport mechanism (such as SSL).

public boolean
isUserInRole(String role)

Determine whether the user is in the given role for this request.

Inherited from org.springframework.web.context.request.RequestAttributes:
getAttributegetAttributeNamesgetSessionIdgetSessionMutexregisterDestructionCallbackremoveAttributeresolveReferencesetAttribute

Method Detail

checkNotModifiedback to summary
public boolean checkNotModified(long lastModifiedTimestamp)

Check 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; or 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 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.

Parameters
lastModifiedTimestamp:long

the last-modified timestamp in milliseconds that the application determined for the underlying resource

Returns:boolean

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

checkNotModifiedback to summary
public boolean checkNotModified(String etag)

Check whether the requested resource has been modified given the supplied 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 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 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 checkNotModified(String, long).

Parameters
etag:String

the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.

Returns:boolean

true if the request does not require further processing.

checkNotModifiedback to summary
public 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.

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 checkNotModified(long).

Parameters
etag:String

the entity tag that the application determined for the underlying resource. This parameter will be padded with quotes (") if necessary.

lastModifiedTimestamp:long

the last-modified timestamp in milliseconds that the application determined for the underlying resource

Returns:boolean

true if the request does not require further processing.

Since
4.2
getContextPathback to summary
public String getContextPath()

Return the context path for this request (usually the base path that the current web application is mapped to).

See Also
jakarta.servlet.http.HttpServletRequest#getContextPath()
getDescriptionback to summary
public String getDescription(boolean includeClientInfo)

Get a short description of this request, typically containing request URI and session id.

Parameters
includeClientInfo:boolean

whether to include client-specific information such as session id and user name

Returns:String

the requested description as String

getHeaderback to summary
public String getHeader(String headerName)

Return the request header of the given name, or null if none.

Retrieves the first header value in case of a multi-value header.

Annotations
@Nullable
Since
3.0
See Also
jakarta.servlet.http.HttpServletRequest#getHeader(String)
getHeaderNamesback to summary
public Iterator<String> getHeaderNames()

Return an Iterator over request header names.

Since
3.0
See Also
jakarta.servlet.http.HttpServletRequest#getHeaderNames()
getHeaderValuesback to summary
public String[] getHeaderValues(String headerName)

Return the request header values for the given header name, or null if none.

A single-value header will be exposed as an array with a single element.

Annotations
@Nullable
Since
3.0
See Also
jakarta.servlet.http.HttpServletRequest#getHeaders(String)
getLocaleback to summary
public Locale getLocale()

Return the primary Locale for this request.

See Also
jakarta.servlet.http.HttpServletRequest#getLocale()
getParameterback to summary
public String getParameter(String paramName)

Return the request parameter of the given name, or null if none.

Retrieves the first parameter value in case of a multi-value parameter.

Annotations
@Nullable
See Also
jakarta.servlet.http.HttpServletRequest#getParameter(String)
getParameterMapback to summary
public Map<String, String[]> getParameterMap()

Return an 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.

See Also
jakarta.servlet.http.HttpServletRequest#getParameterMap()
getParameterNamesback to summary
public Iterator<String> getParameterNames()

Return an Iterator over request parameter names.

Since
3.0
See Also
jakarta.servlet.http.HttpServletRequest#getParameterNames()
getParameterValuesback to summary
public String[] getParameterValues(String paramName)

Return the request parameter values for the given parameter name, or null if none.

A single-value parameter will be exposed as an array with a single element.

Annotations
@Nullable
See Also
jakarta.servlet.http.HttpServletRequest#getParameterValues(String)
getRemoteUserback to summary
public String getRemoteUser()

Return the remote user for this request, if any.

Annotations
@Nullable
See Also
jakarta.servlet.http.HttpServletRequest#getRemoteUser()
getUserPrincipalback to summary
public Principal getUserPrincipal()

Return the user principal for this request, if any.

Annotations
@Nullable
See Also
jakarta.servlet.http.HttpServletRequest#getUserPrincipal()
isSecureback to summary
public boolean isSecure()

Return whether this request has been sent over a secure transport mechanism (such as SSL).

See Also
jakarta.servlet.http.HttpServletRequest#isSecure()
isUserInRoleback to summary
public boolean isUserInRole(String role)

Determine whether the user is in the given role for this request.

See Also
jakarta.servlet.http.HttpServletRequest#isUserInRole(String)