- java.lang.Object
-
- com.sun.net.httpserver.Filter
-
public abstract class Filter extends Object
用于预处理和后处理传入请求的过滤器。 预处理发生在应用程序的交换处理程序被调用之前,后处理在交换处理程序返回后发生。 过滤器以链式组织,并与HttpContext实例相关联。链中的每个过滤器调用自己的doFilter()实现中的下一个过滤器。 链中的最终过滤器调用应用程序交换处理程序。
- 从以下版本开始:
- 1.6
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
Filter.Chain
与HttpServer关联的一连串过滤器。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
Filter()
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract String
description()
返回此过滤器的简短说明abstract void
doFilter(HttpExchange exchange, Filter.Chain chain)
要求此过滤器预先/后处理给定的交换。
-
-
-
方法详细信息
-
doFilter
public abstract void doFilter(HttpExchange exchange, Filter.Chain chain) throws IOException
要求此过滤器预先/后处理给定的交换。 过滤器可以:- 检查或修改请求头
- 通过创建适当的过滤器流并调用
HttpExchange.setStreams(InputStream,OutputStream)
来过滤请求体或响应体 - 在交换中设置属性对象,哪些其他过滤器或交换处理程序可以访问。
- 决定要么
- 调用链接中的下一个过滤器,通过调用
Filter.Chain.doFilter(HttpExchange)
- 终止调用链, 不调用
Filter.Chain.doFilter(HttpExchange)
- 调用链接中的下一个过滤器,通过调用
- 如果选择了上述选项1.那么当doFilter()返回链中的所有随后的过滤器被调用时,可以检查或修改响应头。
- 如果选择上述选项2.则此Filter必须使用HttpExchange发回适当的响应
- 参数
-
exchange
- 要过滤的HttpExchange
。 -
chain
- 允许调用下一个过滤器的链。 - 异常
-
IOException
- 可能被任何过滤器模块抛出,如果被捕获,则必须再次被重新抛出。 -
NullPointerException
- 如果任何一个交易所或链都是null
-
description
public abstract String description()
返回此过滤器的简短说明- 结果
- 描述过滤器的字符串
-
-