org.springframework.web.multipart.support

## Class DefaultMultipartHttpServletRequest

- java.lang.Object
- - javax.servlet.ServletRequestWrapper
  - - javax.servlet.http.HttpServletRequestWrapper
    - - org.springframework.web.multipart.support.AbstractMultipartHttpServletRequest
      - - org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest

- All Implemented Interfaces:
    HttpServletRequest, ServletRequest, MultipartHttpServletRequest, MultipartRequest

      public class DefaultMultipartHttpServletRequest
      extends AbstractMultipartHttpServletRequest

  Default implementation of the `MultipartHttpServletRequest` interface. Provides management of pre-generated parameter values.

  Used by `CommonsMultipartResolver`.

  Since:
    29.09.2003
  Author:
    Trevor D. Cook, Juergen Hoeller, Arjen Poutsma
  See Also:
    `MultipartResolver`

- - ### Field Summary

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

      `BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultMultipartHttpServletRequest(HttpServletRequest request)` Wrap the given HttpServletRequest in a MultipartHttpServletRequest.
    `DefaultMultipartHttpServletRequest(HttpServletRequest request, MultiValueMap<String,MultipartFile> mpFiles, Map<String,String[]> mpParams, Map<String,String> mpParamContentTypes)` Wrap the given HttpServletRequest in a MultipartHttpServletRequest.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getMultipartContentType(String paramOrFileName)` Determine the content type of the specified request part.
    `HttpHeaders` | `getMultipartHeaders(String paramOrFileName)` Return the headers for the specified part of the multipart request.
    `protected Map<String,String>` | `getMultipartParameterContentTypes()` Obtain the multipart parameter content type Map for retrieval, lazily initializing it if necessary.
    `protected Map<String,String[]>` | `getMultipartParameters()` Obtain the multipart parameter Map for retrieval, lazily initializing it if necessary.
    `String` | `getParameter(String name)`
    `Map<String,String[]>` | `getParameterMap()`
    `Enumeration<String>` | `getParameterNames()`
    `String[]` | `getParameterValues(String name)`
    `protected void` | `setMultipartParameterContentTypes(Map<String,String> multipartParameterContentTypes)` Set a Map with parameter names as keys and content type Strings as values.
    `protected void` | `setMultipartParameters(Map<String,String[]> multipartParameters)` Set a Map with parameter names as keys and String array objects as values.

    - ### Methods inherited from class org.springframework.web.multipart.support.AbstractMultipartHttpServletRequest

      `getFile, getFileMap, getFileNames, getFiles, getMultiFileMap, getMultipartFiles, getRequest, getRequestHeaders, getRequestMethod, initializeMultipart, isResolved, setMultipartFiles`

    - ### Methods inherited from class javax.servlet.http.HttpServletRequestWrapper

      `authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

    - ### Methods inherited from class javax.servlet.ServletRequestWrapper

      `getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getReader, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setRequest, startAsync, startAsync`

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

      `authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

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

      `getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getReader, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync`

- - ### Constructor Detail

    - #### DefaultMultipartHttpServletRequest

          public DefaultMultipartHttpServletRequest(HttpServletRequest request,
                                                    MultiValueMap<String,MultipartFile> mpFiles,
                                                    Map<String,String[]> mpParams,
                                                    Map<String,String> mpParamContentTypes)

      Wrap the given HttpServletRequest in a MultipartHttpServletRequest.
      Parameters:
        `request` - the servlet request to wrap
        `mpFiles` - a map of the multipart files
        `mpParams` - a map of the parameters to expose, with Strings as keys and String arrays as values

    - #### DefaultMultipartHttpServletRequest

          public DefaultMultipartHttpServletRequest(HttpServletRequest request)

      Wrap the given HttpServletRequest in a MultipartHttpServletRequest.
      Parameters:
        `request` - the servlet request to wrap

  - ### Method Detail

    - #### getParameter

          @Nullable
          public String getParameter(String name)

      Specified by:
        `getParameter` in interface `ServletRequest`
      Overrides:
        `getParameter` in class `ServletRequestWrapper`

    - #### getParameterValues

          public String[] getParameterValues(String name)

      Specified by:
        `getParameterValues` in interface `ServletRequest`
      Overrides:
        `getParameterValues` in class `ServletRequestWrapper`

    - #### getParameterNames

          public Enumeration<String> getParameterNames()

      Specified by:
        `getParameterNames` in interface `ServletRequest`
      Overrides:
        `getParameterNames` in class `ServletRequestWrapper`

    - #### getParameterMap

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

      Specified by:
        `getParameterMap` in interface `ServletRequest`
      Overrides:
        `getParameterMap` in class `ServletRequestWrapper`

    - #### getMultipartContentType

          public String getMultipartContentType(String paramOrFileName)

      Description copied from interface: `MultipartRequest`
      Determine the content type of the specified request part.
      Parameters:
        `paramOrFileName` - the name of the part
      Returns:
        the associated content type, or `null` if not defined

    - #### getMultipartHeaders

          public HttpHeaders getMultipartHeaders(String paramOrFileName)

      Description copied from interface: `MultipartHttpServletRequest`
      Return the headers for the specified part of the multipart request.

      If the underlying implementation supports access to part headers, then all headers are returned. Otherwise, e.g. for a file upload, the returned headers may expose a 'Content-Type' if available.

    - #### setMultipartParameters

          protected final void setMultipartParameters(Map<String,String[]> multipartParameters)

      Set a Map with parameter names as keys and String array objects as values. To be invoked by subclasses on initialization.

    - #### getMultipartParameters

          protected Map<String,String[]> getMultipartParameters()

      Obtain the multipart parameter Map for retrieval, lazily initializing it if necessary.
      See Also:
        `AbstractMultipartHttpServletRequest.initializeMultipart()`

    - #### setMultipartParameterContentTypes

          protected final void setMultipartParameterContentTypes(Map<String,String> multipartParameterContentTypes)

      Set a Map with parameter names as keys and content type Strings as values. To be invoked by subclasses on initialization.

    - #### getMultipartParameterContentTypes

          protected Map<String,String> getMultipartParameterContentTypes()

      Obtain the multipart parameter content type Map for retrieval, lazily initializing it if necessary.
      See Also:
        `AbstractMultipartHttpServletRequest.initializeMultipart()`