The Spring Framework

## org.springframework.web.multipart.support
Class MultipartFilter

    java.lang.Object
      org.springframework.web.filter.GenericFilterBean
          org.springframework.web.filter.OncePerRequestFilter
              org.springframework.web.multipart.support.MultipartFilter

All Implemented Interfaces:
  Filter, BeanNameAware, DisposableBean, InitializingBean, ServletContextAware

    public class MultipartFilter

extends OncePerRequestFilter

Servlet 2.3 Filter that resolves multipart requests via a MultipartResolver. in the root web application context.

Looks up the MultipartResolver in Spring's root web application context. Supports a "multipartResolverBeanName" filter init-param in `web.xml`; the default bean name is "filterMultipartResolver". Looks up the MultipartResolver on each request, to avoid initialization order issues (when using ContextLoaderServlet, the root application context will get initialized after this filter).

MultipartResolver lookup is customizable: Override this filter's `lookupMultipartResolver` method to use a custom MultipartResolver instance, for example if not using a Spring web application context. Note that the lookup method should not create a new MultipartResolver instance for each call but rather return a reference to a pre-built instance.

Note: This filter is an alternative to using DispatcherServlet's MultipartResolver support, for example for web applications with custom web views that do not use Spring's web MVC. It should not be combined with servlet-specific multipart resolution.

Since:
  08.10.2003
Author:
  Juergen Hoeller
See Also:
  `setMultipartResolverBeanName(java.lang.String)`, `lookupMultipartResolver(javax.servlet.http.HttpServletRequest)`, `MultipartResolver`, `DispatcherServlet`

Field Summary
`static String` `DEFAULT_MULTIPART_RESOLVER_BEAN_NAME`

Fields inherited from class org.springframework.web.filter.OncePerRequestFilter
`ALREADY_FILTERED_SUFFIX`

Fields inherited from class org.springframework.web.filter.GenericFilterBean
`logger`

Constructor Summary
`MultipartFilter()`

Method Summary
`protected void` `doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)` Check for a multipart request via this filter's MultipartResolver, and wrap the original request with a MultipartHttpServletRequest if appropriate.
`protected String` `getMultipartResolverBeanName()` Return the bean name of the MultipartResolver to fetch from Spring's root application context.
`protected MultipartResolver` `lookupMultipartResolver()` Look for a MultipartResolver bean in the root web application context.
`protected MultipartResolver` `lookupMultipartResolver(HttpServletRequest request)` Look up the MultipartResolver that this filter should use, taking the current HTTP request as argument.
`void` `setMultipartResolverBeanName(String multipartResolverBeanName)` Set the bean name of the MultipartResolver to fetch from Spring's root application context.

Methods inherited from class org.springframework.web.filter.OncePerRequestFilter
`doFilter, getAlreadyFilteredAttributeName, shouldNotFilter`

Methods inherited from class org.springframework.web.filter.GenericFilterBean
`addRequiredProperty, afterPropertiesSet, destroy, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setServletContext`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_MULTIPART_RESOLVER_BEAN_NAME

    public static final String DEFAULT_MULTIPART_RESOLVER_BEAN_NAME

See Also:
  Constant Field Values

Constructor Detail

### MultipartFilter

    public MultipartFilter()

Method Detail

### setMultipartResolverBeanName

    public void setMultipartResolverBeanName(String multipartResolverBeanName)

  Set the bean name of the MultipartResolver to fetch from Spring's root application context. Default is "filterMultipartResolver".

### getMultipartResolverBeanName

    protected String getMultipartResolverBeanName()

  Return the bean name of the MultipartResolver to fetch from Spring's root application context.

### doFilterInternal

    protected void doFilterInternal(HttpServletRequest request,
                                    HttpServletResponse response,
                                    FilterChain filterChain)
                             throws ServletException,
                                    IOException

  Check for a multipart request via this filter's MultipartResolver, and wrap the original request with a MultipartHttpServletRequest if appropriate.

  All later elements in the filter chain, most importantly servlets, benefit from proper parameter extraction in the multipart case, and are able to cast to MultipartHttpServletRequest if they need to.

  Specified by:
    `doFilterInternal` in class `OncePerRequestFilter`
  Throws:
    `ServletException`
    `IOException`

### lookupMultipartResolver

    protected MultipartResolver lookupMultipartResolver(HttpServletRequest request)

  Look up the MultipartResolver that this filter should use, taking the current HTTP request as argument.

  Default implementation delegates to the `lookupMultipartResolver` without arguments.

  Returns:
    the MultipartResolver to use
  See Also:
    `lookupMultipartResolver()`

### lookupMultipartResolver

    protected MultipartResolver lookupMultipartResolver()

  Look for a MultipartResolver bean in the root web application context. Supports a "multipartResolverBeanName" filter init param; the default bean name is "filterMultipartResolver".

  This can be overridden to use a custom MultipartResolver instance, for example if not using a Spring web application context.

  Returns:
    the MultipartResolver instance, or `null` if none found

The Spring Framework

Copyright © 2002-2008 The Spring Framework.