Class Overview
javax.servlet.Filter that converts posted method parameters into HTTP methods,
retrievable via 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 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.
Summary
Public Methods |
void
|
setMethodParam(String methodParam)
Set the parameter name to look for HTTP methods.
|
Protected Methods |
void
|
doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
Same contract as for doFilter , but guaranteed to be
just invoked once per request.
|
[Expand]
Inherited Methods |
From class
org.springframework.web.filter.OncePerRequestFilter
final
void
|
doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
This doFilter implementation stores a request attribute for
"already filtered", proceeding without filtering again if the
attribute is already there.
|
abstract
void
|
doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
Same contract as for doFilter , but guaranteed to be
just invoked once per request.
|
String
|
getAlreadyFilteredAttributeName()
Return the name of the request attribute that identifies that a request
is already filtered.
|
boolean
|
shouldNotFilter(HttpServletRequest request)
Can be overridden in subclasses for custom filtering control,
returning true to avoid filtering of the given request.
|
|
From class
org.springframework.web.filter.GenericFilterBean
final
void
|
addRequiredProperty(String property)
Subclasses can invoke this method to specify that this property
(which must match a JavaBean property they expose) is mandatory,
and must be supplied as a config parameter.
|
void
|
afterPropertiesSet()
Calls the initFilterBean() method that might
contain custom initialization of a subclass.
|
void
|
destroy()
Subclasses may override this to perform custom filter shutdown.
|
final
FilterConfig
|
getFilterConfig()
Make the FilterConfig of this filter available, if any.
|
final
String
|
getFilterName()
Make the name of this filter available to subclasses.
|
final
ServletContext
|
getServletContext()
Make the ServletContext of this filter available to subclasses.
|
final
void
|
init(FilterConfig filterConfig)
Standard way of initializing this filter.
|
void
|
initBeanWrapper(BeanWrapper bw)
Initialize the BeanWrapper for this GenericFilterBean,
possibly with custom editors.
|
void
|
initFilterBean()
Subclasses may override this to perform custom initialization.
|
final
void
|
setBeanName(String beanName)
Stores the bean name as defined in the Spring bean factory.
|
void
|
setEnvironment(Environment environment)
Set the Environment that this object runs in.
Any environment set here overrides the DefaultWebEnvironment
provided by default.
|
final
void
|
setServletContext(ServletContext servletContext)
Stores the ServletContext that the bean factory runs in.
|
|
From class
java.lang.Object
Object
|
clone()
|
boolean
|
equals(Object arg0)
|
void
|
finalize()
|
final
Class<?>
|
getClass()
|
int
|
hashCode()
|
final
void
|
notify()
|
final
void
|
notifyAll()
|
String
|
toString()
|
final
void
|
wait()
|
final
void
|
wait(long arg0, int arg1)
|
final
void
|
wait(long arg0)
|
|
From interface
javax.servlet.Filter
abstract
void
|
destroy()
|
abstract
void
|
doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
|
abstract
void
|
init(FilterConfig arg0)
|
|
From interface
org.springframework.beans.factory.BeanNameAware
abstract
void
|
setBeanName(String name)
Set the name of the bean in the bean factory that created this bean.
|
|
From interface
org.springframework.beans.factory.DisposableBean
abstract
void
|
destroy()
Invoked by a BeanFactory on destruction of a singleton.
|
|
From interface
org.springframework.beans.factory.InitializingBean
abstract
void
|
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied
(and satisfied BeanFactoryAware and ApplicationContextAware).
|
|
From interface
org.springframework.context.EnvironmentAware
|
From interface
org.springframework.web.context.ServletContextAware
abstract
void
|
setServletContext(ServletContext servletContext)
Set the ServletContext that this object runs in.
|
|
Constants
public
static
final
String
DEFAULT_METHOD_PARAM
Default method parameter: _method
Constant Value:
"_method"
Public Constructors
public
HiddenHttpMethodFilter
()
Public Methods
public
void
setMethodParam
(String methodParam)
Set the parameter name to look for HTTP methods.
Protected Methods
protected
void
doFilterInternal
(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
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.