java.lang.Object
com.sun.net.httpserver.Filter
public abstract class Filter extends Object
A filter used to pre- and post-process incoming requests. Pre-processing occurs
before the application's exchange handler is invoked, and post-processing
occurs after the exchange handler returns. Filters
are organised in chains, and are associated with HttpContext instances.
Each Filter in the chain, invokes the next filter within its own doFilter() implementation. The final Filter in the chain invokes the applications exchange handler.
- Since:
- 1.6
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Filter.Chain
a chain of filters associated with a HttpServer. -
Constructor Summary
Constructors Modifier Constructor Description protected
Filter()
-
Method Summary
Modifier and Type Method Description abstract String
description()
returns a short description of this Filterabstract void
doFilter(HttpExchange exchange, Filter.Chain chain)
Asks this filter to pre/post-process the given exchange.
-
Constructor Details
-
Filter
protected Filter()
-
-
Method Details
-
doFilter
Asks this filter to pre/post-process the given exchange. The filter can:- examine or modify the request headers
- filter the request body or the response body, by creating suitable
filter streams and calling
HttpExchange.setStreams(InputStream,OutputStream)
- set attribute Objects in the exchange, which other filters or the exchange handler can access.
- decide to either
- invoke the next filter in the chain, by calling
Filter.Chain.doFilter(HttpExchange)
- terminate the chain of invocation, by not calling
Filter.Chain.doFilter(HttpExchange)
- invoke the next filter in the chain, by calling
- if option 1. above taken, then when doFilter() returns all subsequent filters in the Chain have been called, and the response headers can be examined or modified.
- if option 2. above taken, then this Filter must use the HttpExchange to send back an appropriate response
- Parameters:
exchange
- theHttpExchange
to be filtered.chain
- the Chain which allows the next filter to be invoked.- Throws:
IOException
- may be thrown by any filter module, and if caught, must be rethrown again.NullPointerException
- if either exchange or chain arenull
-
description
returns a short description of this Filter- Returns:
- a string describing the Filter
-