## org.springframework.web.filter
Class HiddenHttpMethodFilter

    java.lang.Object
      org.springframework.web.filter.GenericFilterBean
          org.springframework.web.filter.OncePerRequestFilter
              org.springframework.web.filter.HiddenHttpMethodFilter

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

    public class HiddenHttpMethodFilter

extends OncePerRequestFilter

`Filter` that converts posted method parameters into HTTP methods, retrievable via `HttpServletRequest.getMethod()`. Since browsers currently only support GET and POST, a common technique - used by the Prototype library, for instance - is to use a normal POST with an additional hidden form field (`_method`) to pass the "real" HTTP method along. This filter reads that parameter and changes the `HttpServletRequestWrapper.getMethod()` return value accordingly.

The name of the request parameter defaults to `_method`, but can be adapted via the `methodParam` property.

NOTE: This filter needs to run after multipart processing in case of a multipart POST request, due to its inherent need for checking a POST body parameter. So typically, put a Spring `MultipartFilter` before this HiddenHttpMethodFilter in your `web.xml` filter chain.

Since:
  3.0
Author:
  Arjen Poutsma

Field Summary
`static String` `DEFAULT_METHOD_PARAM` Default method parameter: `_method`

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

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

Constructor Summary
`HiddenHttpMethodFilter()`

Method Summary
`protected void` `doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)` Same contract as for `doFilter`, but guaranteed to be just invoked once per request.
`void` `setMethodParam(String methodParam)` Set the parameter name to look for HTTP methods.

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_METHOD_PARAM

    public static final String DEFAULT_METHOD_PARAM

  Default method parameter: `_method`

  See Also:
    Constant Field Values

Constructor Detail

### HiddenHttpMethodFilter

    public HiddenHttpMethodFilter()

Method Detail

### setMethodParam

    public void setMethodParam(String methodParam)

  Set the parameter name to look for HTTP methods.

  See Also:
    `DEFAULT_METHOD_PARAM`

### doFilterInternal

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

  Description copied from class: `OncePerRequestFilter`
  Same contract as for `doFilter`, but guaranteed to be just invoked once per request. Provides HttpServletRequest and HttpServletResponse arguments instead of the default ServletRequest and ServletResponse ones.

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