# Class Filter.Chain

java.lang.Object
com.sun.net.httpserver.Filter.Chain

Enclosing class:
  `Filter`

public static class Filter.Chain extends Object
A chain of filters associated with a `HttpServer`. Each filter in the chain is given one of these so it can invoke the next filter in the chain.

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Chain(List<Filter> filters, HttpHandler handler)`
  Creates a `Chain` instance with given filters and handler.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `doFilter(HttpExchange exchange)`
  Calls the next filter in the chain, or else the users exchange handler, if this is the final filter in the chain.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Chain

    public Chain(List<Filter> filters, HttpHandler handler)
    Creates a `Chain` instance with given filters and handler.
    Parameters:
      `filters` - the filters that make up the `Chain`
      `handler` - the `HttpHandler` that will be invoked after the final `Filter` has finished

- ## Method Details

  - ### doFilter

    public void doFilter(HttpExchange exchange) throws IOException
    Calls the next filter in the chain, or else the users exchange handler, if this is the final filter in the chain. The `Filter` may decide to terminate the chain, by not calling this method. In this case, the filter must send the response to the request, because the application's exchange handler will not be invoked.
    Parameters:
      `exchange` - the `HttpExchange`
    Throws:
      `IOException` - if an I/O error occurs
      `NullPointerException` - if exchange is `null`