filters
Class SetCharacterEncodingFilter

java.lang.Object
  extended by filters.SetCharacterEncodingFilter
All Implemented Interfaces:
Filter

public class SetCharacterEncodingFilter
extends Object
implements 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:

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.

Author:
Craig McClanahan

Field Summary
protected  String encoding
          The default character encoding to set for requests that pass through this filter.
protected  FilterConfig filterConfig
          The filter configuration object we are associated with.
protected  boolean ignore
          Should a character encoding specified by the client be ignored?
 
Constructor Summary
SetCharacterEncodingFilter()
           
 
Method Summary
 void destroy()
          Take this filter out of service.
 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.
 void init(FilterConfig filterConfig)
          Place this filter into service.
protected  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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

encoding

protected String encoding
The default character encoding to set for requests that pass through this filter.


filterConfig

protected FilterConfig filterConfig
The filter configuration object we are associated with. If this value is null, this filter instance is not currently configured.


ignore

protected boolean ignore
Should a character encoding specified by the client be ignored?

Constructor Detail

SetCharacterEncodingFilter

public SetCharacterEncodingFilter()
Method Detail

destroy

public void destroy()
Take this filter out of service.

Specified by:
destroy in interface Filter

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.

Specified by:
doFilter in interface Filter
Parameters:
request - The servlet request we are processing
result - The servlet response we are creating
chain - The filter chain we are processing
Throws:
IOException - if an input/output error occurs
ServletException - if a servlet error occurs

init

public void init(FilterConfig filterConfig)
          throws ServletException
Place this filter into service.

Specified by:
init in interface Filter
Parameters:
filterConfig - The filter configuration object
Throws:
ServletException

selectEncoding

protected 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, return null.

The default implementation unconditionally returns the value configured by the encoding initialization parameter for this filter.

Parameters:
request - The servlet request we are processing


Copyright © 2003-2007 Apache Software Foundation. All Rights Reserved.