org.springframework.web.filter
Class CompositeFilter

java.lang.Object
  extended by org.springframework.web.filter.CompositeFilter
All Implemented Interfaces:
Filter

public class CompositeFilter
extends Object
implements Filter

A generic composite servlet Filter that just delegates its behaviour 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.

Since:
3.1
Author:
Dave Syer

Constructor Summary
CompositeFilter()
           
 
Method Summary
 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(List)) 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)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompositeFilter

public CompositeFilter()
Method Detail

setFilters

public void setFilters(List<? extends Filter> filters)

destroy

public void destroy()
Clean up all the filters supplied, calling each one's destroy method in turn, but in reverse order.

Specified by:
destroy in interface Filter
See Also:
Filter.init(FilterConfig)

init

public void init(FilterConfig config)
          throws ServletException
Initialize all the filters, calling each one's init method in turn in the order supplied.

Specified by:
init in interface Filter
Throws:
ServletException
See Also:
Filter.init(FilterConfig)

doFilter

public void doFilter(ServletRequest request,
                     ServletResponse response,
                     FilterChain chain)
              throws IOException,
                     ServletException
Forms a temporary chain from the list of delegate filters supplied (setFilters(List)) and executes them in order. Each filter delegates to the next one in the list, achieving the normal behaviour of a FilterChain, despite the fact that this is a Filter.

Specified by:
doFilter in interface Filter
Throws:
IOException
ServletException
See Also:
Filter.doFilter(ServletRequest, ServletResponse, FilterChain)