模块  jdk.httpserver

Class Filter


  • public abstract class Filter
    extends Object
    用于预处理和后处理传入请求的过滤器。 预处理在调用应用程序的交换处理程序之前发生,并且在交换处理程序返回之后发生后处理。 过滤器按链组织,并与HttpContext实例相关联。

    链中的每个Filter在其自己的doFilter()实现中调用下一个过滤器。 链中的最终Filter调用应用程序交换处理程序。

    从以下版本开始:
    1.6
    • 构造方法详细信息

      • Filter

        protected Filter()
    • 方法详细信息

      • doFilter

        public abstract void doFilter​(HttpExchange exchange,
                                      Filter.Chain chain)
                               throws IOException
        要求此过滤器预先/后处理给定的交换。 过滤器可以:
        • 检查或修改请求标头
        • 通过创建合适的过滤器流并调用HttpExchange.setStreams(InputStream,OutputStream)过滤请求主体或响应主体
        • set属性交换中的对象,其他过滤器或交换处理程序可以访问。
        • 决定要么
          1. 通过调用Filter.Chain.doFilter(HttpExchange)调用链中的下一个过滤器
          2. 通过调用Filter.Chain.doFilter(HttpExchange)终止调用链
        • 如果选项1是上面的,那么当doFilter()返回链中的所有后续过滤器时,都会被调用,并且可以检查或修改响应头。
        • 如果上面的选项2,则此过滤器必须使用HttpExchange发送回适当的响应
        参数
        exchange - 要过滤的 HttpExchange
        chain - 允许调用下一个过滤器的Chain。
        异常
        IOException - 任何过滤器模块都可能抛出,如果被捕获,则必须重新进行重新抛出。
        NullPointerException - 如果交易所或连锁的是 null
      • description

        public abstract String description()
        返回此Filter的简短描述
        结果
        描述Filter的字符串