Module  jdk.httpserver

Class Filter



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

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

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

      • Filter

        protected Filter​()
    • 方法详细信息

      • doFilter

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

        public abstract String description​()
        返回此过滤器的简短说明
        结果
        描述过滤器的字符串