org.springframework.mock.web

## Class MockHttpServletRequest

- java.lang.Object
- - org.springframework.mock.web.MockHttpServletRequest

All Implemented Interfaces:
  HttpServletRequest, ServletRequest

Direct Known Subclasses:
  MockMultipartHttpServletRequest

    public class MockHttpServletRequest
    extends Object
    implements HttpServletRequest

Mock implementation of the `HttpServletRequest` interface.

Compatible with Servlet 2.5 and partially with Servlet 3.0 (notable exceptions: the `getPart(s)` and `startAsync` families of methods).

Since:
  1.0.2
Author:
  Juergen Hoeller, Rod Johnson, Rick Evans, Mark Fisher, Sam Brannen

### Field Summary

Fields
`static String` `DEFAULT_PROTOCOL` The default protocol: 'http'.
`static String` `DEFAULT_REMOTE_ADDR` The default remote address: '127.0.0.1'.
`static String` `DEFAULT_REMOTE_HOST` The default remote host: 'localhost'.
`static String` `DEFAULT_SERVER_ADDR` The default server address: '127.0.0.1'.
`static String` `DEFAULT_SERVER_NAME` The default server name: 'localhost'.
`static int` `DEFAULT_SERVER_PORT` The default server port: '80'.

### Fields inherited from interface javax.servlet.http.HttpServletRequest

`BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

### Constructor Summary

Constructors
Constructor and Description
`MockHttpServletRequest()` Create a new `MockHttpServletRequest` with a default `MockServletContext`.
`MockHttpServletRequest(ServletContext servletContext)` Create a new `MockHttpServletRequest` with the supplied `ServletContext`.
`MockHttpServletRequest(ServletContext servletContext, String method, String requestURI)` Create a new `MockHttpServletRequest` with the supplied `ServletContext`, `method`, and `requestURI`.
`MockHttpServletRequest(String method, String requestURI)` Create a new `MockHttpServletRequest` with a default `MockServletContext`.

### Method Summary

Methods
`void` `addHeader(String name, Object value)` Add a 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 params)` Adds all provided parameters without replacing any existing values.
`void` `addPreferredLocale(Locale locale)` Add a new preferred locale, before any existing locales.
`void` `addUserRole(String role)`
`boolean` `authenticate(HttpServletResponse response)`
`protected void` `checkActive()` Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.
`void` `clearAttributes()` Clear all of this request's attributes.
`void` `close()` Mark this request as completed, keeping its state.
`Object` `getAttribute(String name)`
`Enumeration<String>` `getAttributeNames()`
`String` `getAuthType()`
`String` `getCharacterEncoding()`
`int` `getContentLength()`
`String` `getContentType()`
`String` `getContextPath()`
`Cookie[]` `getCookies()`
`long` `getDateHeader(String name)`
`String` `getHeader(String name)`
`Enumeration<String>` `getHeaderNames()`
`Enumeration<String>` `getHeaders(String name)`
`ServletInputStream` `getInputStream()`
`int` `getIntHeader(String name)`
`String` `getLocalAddr()`
`Locale` `getLocale()`
`Enumeration<Locale>` `getLocales()`
`String` `getLocalName()`
`int` `getLocalPort()`
`String` `getMethod()`
`String` `getParameter(String name)`
`Map<String,String[]>` `getParameterMap()`
`Enumeration<String>` `getParameterNames()`
`String[]` `getParameterValues(String name)`
`String` `getPathInfo()`
`String` `getPathTranslated()`
`String` `getProtocol()`
`String` `getQueryString()`
`BufferedReader` `getReader()`
`String` `getRealPath(String path)`
`String` `getRemoteAddr()`
`String` `getRemoteHost()`
`int` `getRemotePort()`
`String` `getRemoteUser()`
`RequestDispatcher` `getRequestDispatcher(String path)`
`String` `getRequestedSessionId()`
`String` `getRequestURI()`
`StringBuffer` `getRequestURL()`
`String` `getScheme()`
`String` `getServerName()`
`int` `getServerPort()`
`ServletContext` `getServletContext()` Return the ServletContext that this request is associated with.
`String` `getServletPath()`
`HttpSession` `getSession()`
`HttpSession` `getSession(boolean create)`
`Principal` `getUserPrincipal()`
`void` `invalidate()` Invalidate this request, clearing its state.
`boolean` `isActive()` Return whether this request is still active (that is, not completed yet).
`boolean` `isRequestedSessionIdFromCookie()`
`boolean` `isRequestedSessionIdFromUrl()`
`boolean` `isRequestedSessionIdFromURL()`
`boolean` `isRequestedSessionIdValid()`
`boolean` `isSecure()`
`boolean` `isUserInRole(String role)`
`void` `login(String username, String password)`
`void` `logout()`
`void` `removeAllParameters()` Removes all existing parameters.
`void` `removeAttribute(String name)`
`void` `removeParameter(String name)` Remove already registered values for the specified HTTP parameter, if any.
`void` `setAttribute(String name, Object value)`
`void` `setAuthType(String authType)`
`void` `setCharacterEncoding(String characterEncoding)`
`void` `setContent(byte[] content)`
`void` `setContentType(String contentType)`
`void` `setContextPath(String contextPath)`
`void` `setCookies(Cookie... cookies)`
`void` `setLocalAddr(String localAddr)`
`void` `setLocalName(String localName)`
`void` `setLocalPort(int localPort)`
`void` `setMethod(String method)`
`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 params)` Sets 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` `setScheme(String scheme)`
`void` `setSecure(boolean secure)`
`void` `setServerName(String serverName)`
`void` `setServerPort(int serverPort)`
`void` `setServletPath(String servletPath)`
`void` `setSession(HttpSession session)`
`void` `setUserPrincipal(Principal userPrincipal)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface javax.servlet.http.HttpServletRequest

`getPart, getParts`

### Methods inherited from interface javax.servlet.ServletRequest

`getAsyncContext, getDispatcherType, isAsyncStarted, isAsyncSupported, startAsync, startAsync`

### Field Detail

#### DEFAULT_PROTOCOL

    public static final String DEFAULT_PROTOCOL

The default protocol: 'http'.

See Also:
  Constant Field Values

#### DEFAULT_SERVER_ADDR

    public static final String DEFAULT_SERVER_ADDR

The default server address: '127.0.0.1'.

See Also:
  Constant Field Values

#### DEFAULT_SERVER_NAME

    public static final String DEFAULT_SERVER_NAME

The default server name: 'localhost'.

See Also:
  Constant Field Values

#### DEFAULT_SERVER_PORT

    public static final int DEFAULT_SERVER_PORT

The default server port: '80'.

See Also:
  Constant Field Values

#### DEFAULT_REMOTE_ADDR

    public static final String DEFAULT_REMOTE_ADDR

The default remote address: '127.0.0.1'.

See Also:
  Constant Field Values

#### DEFAULT_REMOTE_HOST

    public static final String DEFAULT_REMOTE_HOST

The default remote host: 'localhost'.

See Also:
  Constant Field Values

### Constructor Detail

#### MockHttpServletRequest

    public MockHttpServletRequest()

Create a new `MockHttpServletRequest` with a default `MockServletContext`.

See Also:
  `MockHttpServletRequest(ServletContext, String, String)`

#### MockHttpServletRequest

    public MockHttpServletRequest(String method,
                          String requestURI)

Create a new `MockHttpServletRequest` with a default `MockServletContext`.

Parameters:
  `method` - the request method (may be `null`)
  `requestURI` - the request URI (may be `null`)
See Also:
  `setMethod(java.lang.String)`, `setRequestURI(java.lang.String)`, `MockHttpServletRequest(ServletContext, String, String)`

#### MockHttpServletRequest

    public MockHttpServletRequest(ServletContext servletContext)

Create a new `MockHttpServletRequest` with the supplied `ServletContext`.

Parameters:
  `servletContext` - the ServletContext that the request runs in (may be `null` to use a default `MockServletContext`)
See Also:
  `MockHttpServletRequest(ServletContext, String, String)`

#### MockHttpServletRequest

    public MockHttpServletRequest(ServletContext servletContext,
                          String method,
                          String requestURI)

Create a new `MockHttpServletRequest` with the supplied `ServletContext`, `method`, and `requestURI`.

The preferred locale will be set to `Locale.ENGLISH`.

Parameters:
  `servletContext` - the ServletContext that the request runs in (may be `null` to use a default `MockServletContext`)
  `method` - the request method (may be `null`)
  `requestURI` - the request URI (may be `null`)
See Also:
  `setMethod(java.lang.String)`, `setRequestURI(java.lang.String)`, `setPreferredLocales(java.util.List<java.util.Locale>)`, `MockServletContext`

### Method Detail

#### getServletContext

    public ServletContext getServletContext()

Return the ServletContext that this request is associated with. (Not available in the standard HttpServletRequest interface for some reason.)

Specified by:
  `getServletContext` in interface `ServletRequest`

#### 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

    protected void checkActive()
                        throws IllegalStateException

Check whether this request is still active (that is, not completed yet), throwing an IllegalStateException if not active anymore.

Throws:
  `IllegalStateException`

#### getAttribute

    public Object getAttribute(String name)

Specified by:
  `getAttribute` in interface `ServletRequest`

#### getAttributeNames

    public Enumeration<String> getAttributeNames()

Specified by:
  `getAttributeNames` in interface `ServletRequest`

#### getCharacterEncoding

    public String getCharacterEncoding()

Specified by:
  `getCharacterEncoding` in interface `ServletRequest`

#### setCharacterEncoding

    public void setCharacterEncoding(String characterEncoding)

Specified by:
  `setCharacterEncoding` in interface `ServletRequest`

#### setContent

    public void setContent(byte[] content)

#### getContentLength

    public int getContentLength()

Specified by:
  `getContentLength` in interface `ServletRequest`

#### setContentType

    public void setContentType(String contentType)

#### getContentType

    public String getContentType()

Specified by:
  `getContentType` in interface `ServletRequest`

#### getInputStream

    public ServletInputStream getInputStream()

Specified by:
  `getInputStream` in interface `ServletRequest`

#### setParameter

    public void setParameter(String name,
                    String value)

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

    public void setParameter(String name,
                    String[] values)

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

    public void setParameters(Map params)

Sets all provided parameters replacing any existing values for the provided parameter names. To add without replacing existing values, use `addParameters(java.util.Map)`.

#### addParameter

    public void addParameter(String name,
                    String value)

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

    public void addParameter(String name,
                    String[] values)

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

    public void addParameters(Map params)

Adds all provided parameters without replacing any existing values. To replace existing values, use `setParameters(java.util.Map)`.

#### removeParameter

    public void removeParameter(String name)

Remove already registered values for the specified HTTP parameter, if any.

#### removeAllParameters

    public void removeAllParameters()

Removes all existing parameters.

#### getParameter

    public String getParameter(String name)

Specified by:
  `getParameter` in interface `ServletRequest`

#### getParameterNames

    public Enumeration<String> getParameterNames()

Specified by:
  `getParameterNames` in interface `ServletRequest`

#### getParameterValues

    public String[] getParameterValues(String name)

Specified by:
  `getParameterValues` in interface `ServletRequest`

#### getParameterMap

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

Specified by:
  `getParameterMap` in interface `ServletRequest`

#### setProtocol

    public void setProtocol(String protocol)

#### getProtocol

    public String getProtocol()

Specified by:
  `getProtocol` in interface `ServletRequest`

#### setScheme

    public void setScheme(String scheme)

#### getScheme

    public String getScheme()

Specified by:
  `getScheme` in interface `ServletRequest`

#### setServerName

    public void setServerName(String serverName)

#### getServerName

    public String getServerName()

Specified by:
  `getServerName` in interface `ServletRequest`

#### setServerPort

    public void setServerPort(int serverPort)

#### getServerPort

    public int getServerPort()

Specified by:
  `getServerPort` in interface `ServletRequest`

#### getReader

    public BufferedReader getReader()
                             throws UnsupportedEncodingException

Specified by:
  `getReader` in interface `ServletRequest`
Throws:
  `UnsupportedEncodingException`

#### setRemoteAddr

    public void setRemoteAddr(String remoteAddr)

#### getRemoteAddr

    public String getRemoteAddr()

Specified by:
  `getRemoteAddr` in interface `ServletRequest`

#### setRemoteHost

    public void setRemoteHost(String remoteHost)

#### getRemoteHost

    public String getRemoteHost()

Specified by:
  `getRemoteHost` in interface `ServletRequest`

#### setAttribute

    public void setAttribute(String name,
                    Object value)

Specified by:
  `setAttribute` in interface `ServletRequest`

#### removeAttribute

    public void removeAttribute(String name)

Specified by:
  `removeAttribute` in interface `ServletRequest`

#### clearAttributes

    public void clearAttributes()

Clear all of this request's attributes.

#### addPreferredLocale

    public void addPreferredLocale(Locale locale)

Add a new preferred locale, before any existing locales.

See Also:
  `setPreferredLocales(java.util.List<java.util.Locale>)`

#### setPreferredLocales

    public void setPreferredLocales(List<Locale> locales)

Set the list of preferred locales, in descending order, effectively replacing any existing locales.

Since:
  3.2
See Also:
  `addPreferredLocale(java.util.Locale)`

#### getLocale

    public Locale getLocale()

Specified by:
  `getLocale` in interface `ServletRequest`

#### getLocales

    public Enumeration<Locale> getLocales()

Specified by:
  `getLocales` in interface `ServletRequest`

#### setSecure

    public void setSecure(boolean secure)

#### isSecure

    public boolean isSecure()

Specified by:
  `isSecure` in interface `ServletRequest`

#### getRequestDispatcher

    public RequestDispatcher getRequestDispatcher(String path)

Specified by:
  `getRequestDispatcher` in interface `ServletRequest`

#### getRealPath

    public String getRealPath(String path)

Specified by:
  `getRealPath` in interface `ServletRequest`

#### setRemotePort

    public void setRemotePort(int remotePort)

#### getRemotePort

    public int getRemotePort()

Specified by:
  `getRemotePort` in interface `ServletRequest`

#### setLocalName

    public void setLocalName(String localName)

#### getLocalName

    public String getLocalName()

Specified by:
  `getLocalName` in interface `ServletRequest`

#### setLocalAddr

    public void setLocalAddr(String localAddr)

#### getLocalAddr

    public String getLocalAddr()

Specified by:
  `getLocalAddr` in interface `ServletRequest`

#### setLocalPort

    public void setLocalPort(int localPort)

#### getLocalPort

    public int getLocalPort()

Specified by:
  `getLocalPort` in interface `ServletRequest`

#### setAuthType

    public void setAuthType(String authType)

#### getAuthType

    public String getAuthType()

Specified by:
  `getAuthType` in interface `HttpServletRequest`

#### setCookies

    public void setCookies(Cookie... cookies)

#### getCookies

    public Cookie[] getCookies()

Specified by:
  `getCookies` in interface `HttpServletRequest`

#### addHeader

    public void addHeader(String name,
                 Object value)

Add a header entry for the given name.

If there was no entry for that header name before, the value will be used as-is. In case of an existing entry, a String array will be created, adding the given value (more specifically, its toString representation) as further element.

Multiple values can only be stored as list of Strings, following the Servlet spec (see `getHeaders` accessor). As alternative to repeated `addHeader` calls for individual elements, you can use a single call with an entire array or Collection of values as parameter.

See Also:
  `getHeaderNames()`, `getHeader(java.lang.String)`, `getHeaders(java.lang.String)`, `getDateHeader(java.lang.String)`, `getIntHeader(java.lang.String)`

#### getDateHeader

    public long getDateHeader(String name)

Specified by:
  `getDateHeader` in interface `HttpServletRequest`

#### getHeader

    public String getHeader(String name)

Specified by:
  `getHeader` in interface `HttpServletRequest`

#### getHeaders

    public Enumeration<String> getHeaders(String name)

Specified by:
  `getHeaders` in interface `HttpServletRequest`

#### getHeaderNames

    public Enumeration<String> getHeaderNames()

Specified by:
  `getHeaderNames` in interface `HttpServletRequest`

#### getIntHeader

    public int getIntHeader(String name)

Specified by:
  `getIntHeader` in interface `HttpServletRequest`

#### setMethod

    public void setMethod(String method)

#### getMethod

    public String getMethod()

Specified by:
  `getMethod` in interface `HttpServletRequest`

#### setPathInfo

    public void setPathInfo(String pathInfo)

#### getPathInfo

    public String getPathInfo()

Specified by:
  `getPathInfo` in interface `HttpServletRequest`

#### getPathTranslated

    public String getPathTranslated()

Specified by:
  `getPathTranslated` in interface `HttpServletRequest`

#### setContextPath

    public void setContextPath(String contextPath)

#### getContextPath

    public String getContextPath()

Specified by:
  `getContextPath` in interface `HttpServletRequest`

#### setQueryString

    public void setQueryString(String queryString)

#### getQueryString

    public String getQueryString()

Specified by:
  `getQueryString` in interface `HttpServletRequest`

#### setRemoteUser

    public void setRemoteUser(String remoteUser)

#### getRemoteUser

    public String getRemoteUser()

Specified by:
  `getRemoteUser` in interface `HttpServletRequest`

#### addUserRole

    public void addUserRole(String role)

#### isUserInRole

    public boolean isUserInRole(String role)

Specified by:
  `isUserInRole` in interface `HttpServletRequest`

#### setUserPrincipal

    public void setUserPrincipal(Principal userPrincipal)

#### getUserPrincipal

    public Principal getUserPrincipal()

Specified by:
  `getUserPrincipal` in interface `HttpServletRequest`

#### setRequestedSessionId

    public void setRequestedSessionId(String requestedSessionId)

#### getRequestedSessionId

    public String getRequestedSessionId()

Specified by:
  `getRequestedSessionId` in interface `HttpServletRequest`

#### setRequestURI

    public void setRequestURI(String requestURI)

#### getRequestURI

    public String getRequestURI()

Specified by:
  `getRequestURI` in interface `HttpServletRequest`

#### getRequestURL

    public StringBuffer getRequestURL()

Specified by:
  `getRequestURL` in interface `HttpServletRequest`

#### setServletPath

    public void setServletPath(String servletPath)

#### getServletPath

    public String getServletPath()

Specified by:
  `getServletPath` in interface `HttpServletRequest`

#### setSession

    public void setSession(HttpSession session)

#### getSession

    public HttpSession getSession(boolean create)

Specified by:
  `getSession` in interface `HttpServletRequest`

#### getSession

    public HttpSession getSession()

Specified by:
  `getSession` in interface `HttpServletRequest`

#### setRequestedSessionIdValid

    public void setRequestedSessionIdValid(boolean requestedSessionIdValid)

#### isRequestedSessionIdValid

    public boolean isRequestedSessionIdValid()

Specified by:
  `isRequestedSessionIdValid` in interface `HttpServletRequest`

#### setRequestedSessionIdFromCookie

    public void setRequestedSessionIdFromCookie(boolean requestedSessionIdFromCookie)

#### isRequestedSessionIdFromCookie

    public boolean isRequestedSessionIdFromCookie()

Specified by:
  `isRequestedSessionIdFromCookie` in interface `HttpServletRequest`

#### setRequestedSessionIdFromURL

    public void setRequestedSessionIdFromURL(boolean requestedSessionIdFromURL)

#### isRequestedSessionIdFromURL

    public boolean isRequestedSessionIdFromURL()

Specified by:
  `isRequestedSessionIdFromURL` in interface `HttpServletRequest`

#### isRequestedSessionIdFromUrl

    public boolean isRequestedSessionIdFromUrl()

Specified by:
  `isRequestedSessionIdFromUrl` in interface `HttpServletRequest`

#### authenticate

    public boolean authenticate(HttpServletResponse response)
                         throws IOException,
                                ServletException

Specified by:
  `authenticate` in interface `HttpServletRequest`
Throws:
  `IOException`
  `ServletException`

#### login

    public void login(String username,
             String password)
               throws ServletException

Specified by:
  `login` in interface `HttpServletRequest`
Throws:
  `ServletException`

#### logout

    public void logout()
                throws ServletException

Specified by:
  `logout` in interface `HttpServletRequest`
Throws:
  `ServletException`