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.
| Modifier and Type | Field and Description |
|---|---|
static 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(String methodParam)
Set the parameter name to look for HTTP methods.
|
doFilter, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatchaddRequiredProperty, afterPropertiesSet, destroy, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContextpublic static final String DEFAULT_METHOD_PARAM
_methodpublic void setMethodParam(String methodParam)
DEFAULT_METHOD_PARAMprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, 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 OncePerRequestFilterServletExceptionIOException