Servlet filtering
Servlet filtering is an integral part of the Servlet 2.3 API.
Servlet filtering provides a new type of object called a filter
that can transform a request or modify a response.
You can chain filters together so that a group of filters can act
on the input and output of a specified resource or group of resources.
Filters typically include logging filters, image conversion filters,
encryption filters, and Multipurpose Internet Mail Extensions (MIME) type
filters (functionally equivalent to the servlet chaining). Although
filters are not servlets, their lifecycle is very similar.
Filters are handled in the following manner:
- The Web container determines whether it needs to construct a FilterChain
containing the LoggingFilter for the requested resource.
The FilterChain begins
with the invocation of the LoggingFilter and ends with the
invocation of the requested resource.
- If other filters need to go in the chain, the Web container places
them after the LoggingFilter and before the requested resource.
- The Web container then instantiates and initializes the LoggingFilter (if
it was not done previously) and invokes its doFilter(FilterConfig) method
to start the chain.
- The LoggingFilter preprocesses the request and response objects
and then invokes the filter chain doFilter(ServletRequest, ServletResponse)
method.
This method passes the processing to the next resource in the
chain, the requested resource.
- Upon return from the filter chain doFilter(ServletRequest, ServletResponse) method,
the LoggingFilter performs post-processing on the request and
response object before sending the response back to the client.

Filter, FilterChain, FilterConfig classes for servlet filtering
Example: com.ibm.websphere.LoggingFilter.java
Web applications: Resources for learning
Searchable topic ID:
cweb_sfilt
Last updated: Jun 21, 2007 8:07:48 PM CDT
WebSphere Business Integration Server Foundation, Version 5.0.2
http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.wasee.doc/info/ee/ae/cweb_sfilt.html