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, Aware, BeanNameAware, DisposableBean, InitializingBean, EnvironmentAware, 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
Methods inherited from class org.springframework.web.filter.GenericFilterBean |
addRequiredProperty, afterPropertiesSet, destroy, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_METHOD_PARAM
public static final String DEFAULT_METHOD_PARAM
- Default method parameter:
_method
- See Also:
- Constant Field Values
HiddenHttpMethodFilter
public HiddenHttpMethodFilter()
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