public class CompositeFilter extends Object implements Filter
Filter that just delegates its behavior
to a chain (list) of user-supplied filters, achieving the functionality of a
FilterChain, but conveniently using only Filter instances.
This is useful for filters that require dependency injection, and can
therefore be set up in a Spring application context. Typically, this
composite would be used in conjunction with DelegatingFilterProxy,
so that it can be declared in Spring but applied to a servlet context.
| Constructor and Description |
|---|
CompositeFilter() |
| Modifier and Type | Method and Description |
|---|---|
void |
destroy()
Clean up all the filters supplied, calling each one's destroy method in turn, but in reverse order.
|
void |
doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
Forms a temporary chain from the list of delegate filters supplied (
setFilters(java.util.List<? extends javax.servlet.Filter>))
and executes them in order. |
void |
init(FilterConfig config)
Initialize all the filters, calling each one's init method in turn in the order supplied.
|
void |
setFilters(List<? extends Filter> filters) |
public void init(FilterConfig config) throws ServletException
init in interface Filterconfig - a FilterConfig object containing the
filter's configuration and initialization parametersServletException - if an exception has occurred that interferes with
the filter's normal operationFilter.init(FilterConfig)public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
setFilters(java.util.List<? extends javax.servlet.Filter>))
and executes them in order. Each filter delegates to the next one in the list, achieving
the normal behavior of a FilterChain, despite the fact that this is a Filter.doFilter in interface Filterrequest - the ServletRequest object contains the client's requestresponse - the ServletResponse object contains the filter's responsechain - the FilterChain for invoking the next filter or the resourceIOException - if an I/O related error has occurred during the processingServletException - if an exception occurs that interferes with the
filter's normal operationFilter.doFilter(ServletRequest, ServletResponse, FilterChain)public void destroy()
destroy in interface FilterFilter.init(FilterConfig)