Package org.apache.catalina.filters
Class SetCharacterEncodingFilter
- java.lang.Object
-
- org.apache.catalina.filters.FilterBase
-
- org.apache.catalina.filters.SetCharacterEncodingFilter
-
- All Implemented Interfaces:
Filter
public class SetCharacterEncodingFilter extends FilterBase
Example filter that sets the character encoding to be used in parsing the incoming request, either unconditionally or only if the client did not specify a character encoding. Configuration of this filter is based on the following initialization parameters:
- encoding - The character encoding to be configured
for this request, either conditionally or unconditionally based on
the
ignore
initialization parameter. This parameter is required, so there is no default. - ignore - If set to "true", any character encoding
specified by the client is ignored, and the value returned by the
selectEncoding()
method is set. If set to "false,selectEncoding()
is called only if the client has not already specified an encoding. By default, this parameter is set to "false".
Although this filter can be used unchanged, it is also easy to subclass it and make the
selectEncoding()
method more intelligent about what encoding to choose, based on characteristics of the incoming request (such as the values of theAccept-Language
andUser-Agent
headers, or a value stashed in the current user's session.
-
-
Field Summary
-
Fields inherited from class org.apache.catalina.filters.FilterBase
sm
-
-
Constructor Summary
Constructors Constructor Description SetCharacterEncodingFilter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
Select and set (if specified) the character encoding to be used to interpret request parameters for this request.java.lang.String
getEncoding()
protected Log
getLogger()
boolean
isIgnore()
protected java.lang.String
selectEncoding(ServletRequest request)
Select an appropriate character encoding to be used, based on the characteristics of the current request and/or filter initialization parameters.void
setEncoding(java.lang.String encoding)
void
setIgnore(boolean ignore)
-
Methods inherited from class org.apache.catalina.filters.FilterBase
init, isConfigProblemFatal
-
-
-
-
Method Detail
-
setEncoding
public void setEncoding(java.lang.String encoding)
-
getEncoding
public java.lang.String getEncoding()
-
setIgnore
public void setIgnore(boolean ignore)
-
isIgnore
public boolean isIgnore()
-
doFilter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException
Select and set (if specified) the character encoding to be used to interpret request parameters for this request.- Parameters:
request
- The servlet request we are processingresponse
- The servlet response we are creatingchain
- The filter chain we are processing- Throws:
java.io.IOException
- if an input/output error occursServletException
- if a servlet error occurs
-
getLogger
protected Log getLogger()
- Specified by:
getLogger
in classFilterBase
-
selectEncoding
protected java.lang.String selectEncoding(ServletRequest request)
Select an appropriate character encoding to be used, based on the characteristics of the current request and/or filter initialization parameters. If no character encoding should be set, returnnull
.The default implementation unconditionally returns the value configured by the encoding initialization parameter for this filter.
- Parameters:
request
- The servlet request we are processing- Returns:
- the encoding that was configured
-
-