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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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`