org.springframework.web.filter
Class CharacterEncodingFilter
java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.web.filter.CharacterEncodingFilter
- All Implemented Interfaces:
- Filter, Aware, BeanNameAware, DisposableBean, InitializingBean, EnvironmentAware, ServletContextAware
public class CharacterEncodingFilter
- extends OncePerRequestFilter
Servlet 2.3/2.4 Filter that allows one to specify a character encoding for
requests. This is useful because current browsers typically do not set a
character encoding even if specified in the HTML page or form.
This filter can either apply its encoding if the request does not
already specify an encoding, or enforce this filter's encoding in any case
("forceEncoding"="true"). In the latter case, the encoding will also be
applied as default response encoding on Servlet 2.4+ containers (although
this will usually be overridden by a full content type set in the view).
- Since:
- 15.03.2004
- Author:
- Juergen Hoeller
- See Also:
setEncoding(java.lang.String)
,
setForceEncoding(boolean)
,
ServletRequest.setCharacterEncoding(java.lang.String)
,
ServletResponse.setCharacterEncoding(java.lang.String)
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 |
CharacterEncodingFilter
public CharacterEncodingFilter()
setEncoding
public void setEncoding(String encoding)
- Set the encoding to use for requests. This encoding will be passed into a
ServletRequest.setCharacterEncoding(java.lang.String)
call.
Whether this encoding will override existing request encodings
(and whether it will be applied as default response encoding as well)
depends on the "forceEncoding"
flag.
setForceEncoding
public void setForceEncoding(boolean forceEncoding)
- Set whether the configured
encoding
of this filter
is supposed to override existing request and response encodings.
Default is "false", i.e. do not modify the encoding if
ServletRequest.getCharacterEncoding()
returns a non-null value. Switch this to "true" to enforce the specified
encoding in any case, applying it as default response encoding as well.
Note that the response encoding will only be set on Servlet 2.4+
containers, since Servlet 2.3 did not provide a facility for setting
a default response encoding.
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