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.
Only "PUT", "DELETE" and "PATCH" HTTP methods are allowed.
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.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DEFAULT_METHOD_PARAM
Default method parameter:
_method |
ALREADY_FILTERED_SUFFIXlogger| Constructor and Description |
|---|
HiddenHttpMethodFilter() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
doFilterInternal(HttpServletRequest request,
HttpServletResponse response,
FilterChain filterChain)
Same contract as for
doFilter, but guaranteed to be
just invoked once per request within a single request thread. |
void |
setMethodParam(java.lang.String methodParam)
Set the parameter name to look for HTTP methods.
|
doFilter, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatchaddRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContextpublic static final java.lang.String DEFAULT_METHOD_PARAM
_methodpublic void setMethodParam(java.lang.String methodParam)
DEFAULT_METHOD_PARAMprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, java.io.IOException
OncePerRequestFilterdoFilter, but guaranteed to be
just invoked once per request within a single request thread.
See OncePerRequestFilter.shouldNotFilterAsyncDispatch() for details.
Provides HttpServletRequest and HttpServletResponse arguments instead of the default ServletRequest and ServletResponse ones.
doFilterInternal in class OncePerRequestFilterServletExceptionjava.io.IOException