Class SetCharacterEncodingFilter
java.lang.Object
org.apache.catalina.filters.FilterBase
org.apache.catalina.filters.SetCharacterEncodingFilter
- All Implemented Interfaces:
Filter
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
ignoreinitialization 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 the Accept-Language and User-Agent headers, or a value stashed in the current
user's session).
-
Field Summary
Fields inherited from class FilterBase
sm -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) Select and set (if specified) the character encoding to be used to interpret request parameters for this request.Returns the character encoding configured for this filter.protected LogReturns the logger used by this filter.booleanisIgnore()Returns whether client-specified character encodings are ignored.protected StringselectEncoding(ServletRequest request) Select an appropriate character encoding to be used, based on the characteristics of the current request and/or filter initialization parameters.voidsetEncoding(String encoding) Sets the character encoding to be configured for requests.voidsetIgnore(boolean ignore) Sets whether to ignore any character encoding specified by the client.Methods inherited from class FilterBase
init, isConfigProblemFatal
-
Constructor Details
-
SetCharacterEncodingFilter
public SetCharacterEncodingFilter()Default constructor.
-
-
Method Details
-
setEncoding
Sets the character encoding to be configured for requests.- Parameters:
encoding- the character encoding
-
getEncoding
Returns the character encoding configured for this filter.- Returns:
- the character encoding
-
setIgnore
public void setIgnore(boolean ignore) Sets whether to ignore any character encoding specified by the client.- Parameters:
ignore-trueto ignore client-specified encoding
-
isIgnore
public boolean isIgnore()Returns whether client-specified character encodings are ignored.- Returns:
trueif client encodings are ignored
-
doFilter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws 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:
IOException- if an input/output error occursServletException- if a servlet error occurs
-
getLogger
Returns the logger used by this filter.- Specified by:
getLoggerin classFilterBase- Returns:
- the logger instance
-
selectEncoding
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
-