Class MockHttpServletRequest
- All Implemented Interfaces:
HttpServletRequest
,ServletRequest
- Direct Known Subclasses:
MockMultipartHttpServletRequest
HttpServletRequest
interface.
The default, preferred Locale
for the server mocked by this request
is Locale.ENGLISH
. This value can be changed via addPreferredLocale(java.util.Locale)
or setPreferredLocales(java.util.List<java.util.Locale>)
.
As of Spring 6.0, this set of mocks is designed on a Servlet 6.0 baseline.
- Since:
- 1.0.2
- Author:
- Juergen Hoeller, Rod Johnson, Rick Evans, Mark Fisher, Chris Beams, Sam Brannen, Brian Clozel
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The default protocol: 'HTTP/1.1'.static final String
The default remote address: '127.0.0.1'.static final String
The default remote host: 'localhost'.static final String
The default scheme: 'http'.static final String
The default server address: '127.0.0.1'.static final String
The default server name: 'localhost'.static final int
The default server port: '80'.Fields inherited from interface jakarta.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH
-
Constructor Summary
ConstructorDescriptionCreate a newMockHttpServletRequest
with a defaultMockServletContext
.MockHttpServletRequest
(ServletContext servletContext) Create a newMockHttpServletRequest
with the suppliedServletContext
.MockHttpServletRequest
(ServletContext servletContext, String method, String requestURI) MockHttpServletRequest
(String method, String requestURI) Create a newMockHttpServletRequest
with a defaultMockServletContext
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add an HTTP header entry for the given name.void
addParameter
(String name, String value) Add a single value for the specified HTTP parameter.void
addParameter
(String name, String... values) Add an array of values for the specified HTTP parameter.void
addParameters
(Map<String, ?> params) Add all provided parameters without replacing any existing values.void
void
addPreferredLocale
(Locale locale) Add a new preferred locale, before any existing locales.void
addUserRole
(String role) boolean
authenticate
(HttpServletResponse response) The implementation of this (Servlet 3.1+) method callsMockHttpSession.changeSessionId()
if the session is a mock session.protected void
Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.void
Clear all of this request's attributes.void
close()
Mark this request as completed, keeping its state.getAttribute
(String name) byte[]
Get the content of the request body as a byte array.Get the content of the request body as aString
, using the configured character encoding.int
long
Cookie[]
long
getDateHeader
(String name) Return the long timestamp for the date header with the givenname
.getHeaders
(String name) int
getIntHeader
(String name) Return the first preferred locale configured in this mock request.Return an enumeration of the preferred locales configured in this mock request.int
getParameter
(String name) String[]
getParameterValues
(String name) getParts()
int
getRequestDispatcher
(String path) int
Return the ServletContext that this request is associated with.getSession
(boolean create) void
Invalidate this request, clearing its state.boolean
isActive()
Return whether this request is still active (that is, not completed yet).boolean
boolean
boolean
boolean
boolean
boolean
isSecure()
boolean
isUserInRole
(String role) void
void
logout()
void
Remove all existing parameters.void
removeAttribute
(String name) void
removeHeader
(String name) Remove already registered entries for the specified HTTP header, if any.void
removeParameter
(String name) Remove already registered values for the specified HTTP parameter, if any.void
setAsyncContext
(MockAsyncContext asyncContext) void
setAsyncStarted
(boolean asyncStarted) void
setAsyncSupported
(boolean asyncSupported) void
setAttribute
(String name, Object value) void
setAuthType
(String authType) void
setCharacterEncoding
(String characterEncoding) void
setContent
(byte[] content) Set the content of the request body as a byte array.void
setContentType
(String contentType) void
setContextPath
(String contextPath) void
setCookies
(Cookie... cookies) void
setDispatcherType
(DispatcherType dispatcherType) void
setHttpServletMapping
(HttpServletMapping httpServletMapping) void
setLocalAddr
(String localAddr) void
setLocalName
(String localName) void
setLocalPort
(int localPort) void
void
setParameter
(String name, String value) Set a single value for the specified HTTP parameter.void
setParameter
(String name, String... values) Set an array of values for the specified HTTP parameter.void
setParameters
(Map<String, ?> params) Set all provided parameters replacing any existing values for the provided parameter names.void
setPathInfo
(String pathInfo) void
setPreferredLocales
(List<Locale> locales) Set the list of preferred locales, in descending order, effectively replacing any existing locales.void
setProtocol
(String protocol) void
setQueryString
(String queryString) void
setRemoteAddr
(String remoteAddr) void
setRemoteHost
(String remoteHost) void
setRemotePort
(int remotePort) void
setRemoteUser
(String remoteUser) void
setRequestedSessionId
(String requestedSessionId) void
setRequestedSessionIdFromCookie
(boolean requestedSessionIdFromCookie) void
setRequestedSessionIdFromURL
(boolean requestedSessionIdFromURL) void
setRequestedSessionIdValid
(boolean requestedSessionIdValid) void
setRequestURI
(String requestURI) void
void
setSecure
(boolean secure) Set the booleansecure
flag indicating whether the mock request was made using a secure channel, such as HTTPS.void
setServerName
(String serverName) void
setServerPort
(int serverPort) void
setServletPath
(String servletPath) void
setSession
(HttpSession session) void
setUserPrincipal
(Principal userPrincipal) startAsync
(ServletRequest request, ServletResponse response) <T extends HttpUpgradeHandler>
TMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface jakarta.servlet.http.HttpServletRequest
getTrailerFields, isTrailerFieldsReady, newPushBuilder
-
Field Details
-
DEFAULT_PROTOCOL
The default protocol: 'HTTP/1.1'.- Since:
- 4.3.7
- See Also:
-
DEFAULT_SCHEME
The default scheme: 'http'.- Since:
- 4.3.7
- See Also:
-
DEFAULT_SERVER_ADDR
The default server address: '127.0.0.1'.- See Also:
-
DEFAULT_SERVER_NAME
The default server name: 'localhost'.- See Also:
-
DEFAULT_SERVER_PORT
public static final int DEFAULT_SERVER_PORTThe default server port: '80'.- See Also:
-
DEFAULT_REMOTE_ADDR
The default remote address: '127.0.0.1'.- See Also:
-
DEFAULT_REMOTE_HOST
The default remote host: 'localhost'.- See Also:
-
-
Constructor Details
-
MockHttpServletRequest
public MockHttpServletRequest()Create a newMockHttpServletRequest
with a defaultMockServletContext
. -
MockHttpServletRequest
Create a newMockHttpServletRequest
with a defaultMockServletContext
.- Parameters:
method
- the request method (may benull
)requestURI
- the request URI (may benull
)- See Also:
-
MockHttpServletRequest
Create a newMockHttpServletRequest
with the suppliedServletContext
.- Parameters:
servletContext
- the ServletContext that the request runs in (may benull
to use a defaultMockServletContext
)- See Also:
-
MockHttpServletRequest
public MockHttpServletRequest(@Nullable ServletContext servletContext, @Nullable String method, @Nullable String requestURI) Create a newMockHttpServletRequest
with the suppliedServletContext
,method
, andrequestURI
.The preferred locale will be set to
Locale.ENGLISH
.- Parameters:
servletContext
- the ServletContext that the request runs in (may benull
to use a defaultMockServletContext
)method
- the request method (may benull
)requestURI
- the request URI (may benull
)- See Also:
-
-
Method Details
-
getServletContext
Return the ServletContext that this request is associated with. (Not available in the standard HttpServletRequest interface for some reason.)- Specified by:
getServletContext
in interfaceServletRequest
-
isActive
public boolean isActive()Return whether this request is still active (that is, not completed yet). -
close
public void close()Mark this request as completed, keeping its state. -
invalidate
public void invalidate()Invalidate this request, clearing its state. -
checkActive
Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.- Throws:
IllegalStateException
-
getAttribute
- Specified by:
getAttribute
in interfaceServletRequest
-
getAttributeNames
- Specified by:
getAttributeNames
in interfaceServletRequest
-
getCharacterEncoding
- Specified by:
getCharacterEncoding
in interfaceServletRequest
-
setCharacterEncoding
- Specified by:
setCharacterEncoding
in interfaceServletRequest
-
setContent
Set the content of the request body as a byte array.If the supplied byte array represents text such as XML or JSON, the
character encoding
should typically be set as well. -
getContentAsByteArray
Get the content of the request body as a byte array.- Returns:
- the content as a byte array (potentially
null
) - Since:
- 5.0
- See Also:
-
getContentAsString
@Nullable public String getContentAsString() throws IllegalStateException, UnsupportedEncodingExceptionGet the content of the request body as aString
, using the configured character encoding.- Returns:
- the content as a
String
, potentiallynull
- Throws:
IllegalStateException
- if the character encoding has not been setUnsupportedEncodingException
- if the character encoding is not supported- Since:
- 5.0
- See Also:
-
getContentLength
public int getContentLength()- Specified by:
getContentLength
in interfaceServletRequest
-
getContentLengthLong
public long getContentLengthLong()- Specified by:
getContentLengthLong
in interfaceServletRequest
-
setContentType
-
getContentType
- Specified by:
getContentType
in interfaceServletRequest
-
getInputStream
- Specified by:
getInputStream
in interfaceServletRequest
-
setParameter
Set a single value for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, they will be replaced.
-
setParameter
Set an array of values for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, they will be replaced.
-
setParameters
Set all provided parameters replacing any existing values for the provided parameter names. To add without replacing existing values, useaddParameters(java.util.Map)
. -
addParameter
Add a single value for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, the given value will be added to the end of the list.
-
addParameter
Add an array of values for the specified HTTP parameter.If there are already one or more values registered for the given parameter name, the given values will be added to the end of the list.
-
addParameters
Add all provided parameters without replacing any existing values. To replace existing values, usesetParameters(java.util.Map)
. -
removeParameter
Remove already registered values for the specified HTTP parameter, if any. -
removeAllParameters
public void removeAllParameters()Remove all existing parameters. -
getParameter
- Specified by:
getParameter
in interfaceServletRequest
-
getParameterNames
- Specified by:
getParameterNames
in interfaceServletRequest
-
getParameterValues
- Specified by:
getParameterValues
in interfaceServletRequest
-
getParameterMap
- Specified by:
getParameterMap
in interfaceServletRequest
-
setProtocol
-
getProtocol
- Specified by:
getProtocol
in interfaceServletRequest
-
setScheme
-
getScheme
- Specified by:
getScheme
in interfaceServletRequest
-
setServerName
-
getServerName
- Specified by:
getServerName
in interfaceServletRequest
-
setServerPort
public void setServerPort(int serverPort) -
getServerPort
public int getServerPort()- Specified by:
getServerPort
in interfaceServletRequest
-
getReader
- Specified by:
getReader
in interfaceServletRequest
- Throws:
UnsupportedEncodingException
-
setRemoteAddr
-
getRemoteAddr
- Specified by:
getRemoteAddr
in interfaceServletRequest
-
setRemoteHost
-
getRemoteHost
- Specified by:
getRemoteHost
in interfaceServletRequest
-
setAttribute
- Specified by:
setAttribute
in interfaceServletRequest
-
removeAttribute
- Specified by:
removeAttribute
in interfaceServletRequest
-
clearAttributes
public void clearAttributes()Clear all of this request's attributes. -
addPreferredLocale
Add a new preferred locale, before any existing locales. -
setPreferredLocales
Set the list of preferred locales, in descending order, effectively replacing any existing locales.- Since:
- 3.2
- See Also:
-
getLocale
Return the first preferred locale configured in this mock request.If no locales have been explicitly configured, the default, preferred
Locale
for the server mocked by this request isLocale.ENGLISH
.In contrast to the Servlet specification, this mock implementation does not take into consideration any locales specified via the
Accept-Language
header.- Specified by:
getLocale
in interfaceServletRequest
- See Also:
-
getLocales
Return an enumeration of the preferred locales configured in this mock request.If no locales have been explicitly configured, the default, preferred
Locale
for the server mocked by this request isLocale.ENGLISH
.In contrast to the Servlet specification, this mock implementation does not take into consideration any locales specified via the
Accept-Language
header.- Specified by:
getLocales
in interfaceServletRequest
- See Also:
-
setSecure
public void setSecure(boolean secure) Set the booleansecure
flag indicating whether the mock request was made using a secure channel, such as HTTPS.- See Also:
-
isSecure
public boolean isSecure()- Specified by:
isSecure
in interfaceServletRequest
- See Also:
-
getRequestDispatcher
- Specified by:
getRequestDispatcher
in interfaceServletRequest
-
setRemotePort
public void setRemotePort(int remotePort) -
getRemotePort
public int getRemotePort()- Specified by:
getRemotePort
in interfaceServletRequest
-
setLocalName
-
getLocalName
- Specified by:
getLocalName
in interfaceServletRequest
-
setLocalAddr
-
getLocalAddr
- Specified by:
getLocalAddr
in interfaceServletRequest
-
setLocalPort
public void setLocalPort(int localPort) -
getLocalPort
public int getLocalPort()- Specified by:
getLocalPort
in interfaceServletRequest
-
startAsync
- Specified by:
startAsync
in interfaceServletRequest
-
startAsync
- Specified by:
startAsync
in interfaceServletRequest
-
setAsyncStarted
public void setAsyncStarted(boolean asyncStarted) -
isAsyncStarted
public boolean isAsyncStarted()- Specified by:
isAsyncStarted
in interfaceServletRequest
-
setAsyncSupported
public void setAsyncSupported(boolean asyncSupported) -
isAsyncSupported
public boolean isAsyncSupported()- Specified by:
isAsyncSupported
in interfaceServletRequest
-
setAsyncContext
-
getAsyncContext
- Specified by:
getAsyncContext
in interfaceServletRequest
-
setDispatcherType
-
getDispatcherType
- Specified by:
getDispatcherType
in interfaceServletRequest
-
getRequestId
- Specified by:
getRequestId
in interfaceServletRequest
-
getProtocolRequestId
- Specified by:
getProtocolRequestId
in interfaceServletRequest
-
getServletConnection
- Specified by:
getServletConnection
in interfaceServletRequest
-
setAuthType
-
getAuthType
- Specified by:
getAuthType
in interfaceHttpServletRequest
-
setCookies
-
getCookies
- Specified by:
getCookies
in interfaceHttpServletRequest
-
addHeader
Add an HTTP header entry for the given name.While this method can take any
Object
as a parameter, it is recommended to use the following types:- String or any Object to be converted using
toString()
; seegetHeader(java.lang.String)
. - String, Number, or Date for date headers; see
getDateHeader(java.lang.String)
. - String or Number for integer headers; see
getIntHeader(java.lang.String)
. String[]
orCollection<String>
for multiple values; seegetHeaders(java.lang.String)
.
- String or any Object to be converted using
-
removeHeader
Remove already registered entries for the specified HTTP header, if any.- Since:
- 4.3.20
-
getDateHeader
Return the long timestamp for the date header with the givenname
.If the internal value representation is a String, this method will try to parse it as a date using the supported date formats:
- "EEE, dd MMM yyyy HH:mm:ss zzz"
- "EEE, dd-MMM-yy HH:mm:ss zzz"
- "EEE MMM dd HH:mm:ss yyyy"
- Specified by:
getDateHeader
in interfaceHttpServletRequest
- Parameters:
name
- the header name- See Also:
-
getHeader
- Specified by:
getHeader
in interfaceHttpServletRequest
-
getHeaders
- Specified by:
getHeaders
in interfaceHttpServletRequest
-
getHeaderNames
- Specified by:
getHeaderNames
in interfaceHttpServletRequest
-
getIntHeader
- Specified by:
getIntHeader
in interfaceHttpServletRequest
-
setMethod
-
getMethod
- Specified by:
getMethod
in interfaceHttpServletRequest
-
setPathInfo
-
getPathInfo
- Specified by:
getPathInfo
in interfaceHttpServletRequest
-
getPathTranslated
- Specified by:
getPathTranslated
in interfaceHttpServletRequest
-
setContextPath
-
getContextPath
- Specified by:
getContextPath
in interfaceHttpServletRequest
-
setQueryString
-
getQueryString
- Specified by:
getQueryString
in interfaceHttpServletRequest
-
setRemoteUser
-
getRemoteUser
- Specified by:
getRemoteUser
in interfaceHttpServletRequest
-
addUserRole
-
isUserInRole
- Specified by:
isUserInRole
in interfaceHttpServletRequest
-
setUserPrincipal
-
getUserPrincipal
- Specified by:
getUserPrincipal
in interfaceHttpServletRequest
-
setRequestedSessionId
-
getRequestedSessionId
- Specified by:
getRequestedSessionId
in interfaceHttpServletRequest
-
setRequestURI
-
getRequestURI
- Specified by:
getRequestURI
in interfaceHttpServletRequest
-
getRequestURL
- Specified by:
getRequestURL
in interfaceHttpServletRequest
-
setServletPath
-
getServletPath
- Specified by:
getServletPath
in interfaceHttpServletRequest
-
setSession
-
getSession
- Specified by:
getSession
in interfaceHttpServletRequest
-
getSession
- Specified by:
getSession
in interfaceHttpServletRequest
-
changeSessionId
The implementation of this (Servlet 3.1+) method callsMockHttpSession.changeSessionId()
if the session is a mock session. Otherwise it simply returns the current session id.- Specified by:
changeSessionId
in interfaceHttpServletRequest
- Since:
- 4.0.3
-
setRequestedSessionIdValid
public void setRequestedSessionIdValid(boolean requestedSessionIdValid) -
isRequestedSessionIdValid
public boolean isRequestedSessionIdValid()- Specified by:
isRequestedSessionIdValid
in interfaceHttpServletRequest
-
setRequestedSessionIdFromCookie
public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie) -
isRequestedSessionIdFromCookie
public boolean isRequestedSessionIdFromCookie()- Specified by:
isRequestedSessionIdFromCookie
in interfaceHttpServletRequest
-
setRequestedSessionIdFromURL
public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL) -
isRequestedSessionIdFromURL
public boolean isRequestedSessionIdFromURL()- Specified by:
isRequestedSessionIdFromURL
in interfaceHttpServletRequest
-
authenticate
- Specified by:
authenticate
in interfaceHttpServletRequest
- Throws:
IOException
ServletException
-
login
- Specified by:
login
in interfaceHttpServletRequest
- Throws:
ServletException
-
logout
- Specified by:
logout
in interfaceHttpServletRequest
- Throws:
ServletException
-
addPart
-
getPart
- Specified by:
getPart
in interfaceHttpServletRequest
- Throws:
IOException
ServletException
-
getParts
- Specified by:
getParts
in interfaceHttpServletRequest
- Throws:
IOException
ServletException
-
setHttpServletMapping
-
getHttpServletMapping
- Specified by:
getHttpServletMapping
in interfaceHttpServletRequest
-
upgrade
public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass) throws IOException, ServletException - Specified by:
upgrade
in interfaceHttpServletRequest
- Throws:
IOException
ServletException
-