zoukankan      html  css  js  c++  java
  • 6.过滤器(Filter)

    ---恢复内容开始---

    1.过滤器简介:

    过滤器是一个用于拦截在数据源和数据目的地之间消息的一个对象。

    过滤器 功能:

    分析请求,将请求发送给指定的资源或自己创建一个响应返回;在请求到达服务器端前处理请求,设置请求信息,将请求封装成符合规则的对象在响应到达客户端前处理响应,将响应封装成符合规则的对象

    不同功能的过滤器:

    身份验证过滤器(Authentication Filters)
    数据压缩过滤器(Data compression Filters)
    加密过滤器(Encryption Filters)
    触发资源访问事件过滤器(Filters that trigger resource access events )
    图像转换过滤器(Image Conversion Filters)
    日志记录和审核过滤器(Logging and Auditing Filters)
    MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)
    标记化过滤器(Tokenizing Filters)
    XSL/T 过滤器(XSL/T Filters),转换 XML 内容。

    过滤器的执行:

    过滤器处理请求采取以下3种行动之一
    过滤器自身产生一个响应,返回给客户端
    把请求转发给过滤器链中的下一个过滤器,如果是最后一个过滤器则将请求转发给请求指定资源
    把请求转发到另一资源。

    过滤器实例:

    AuthorityFilter
    编码(实现Filter接口)
    部署(在web.xml配置)
    注册过滤器
    配置虚拟路径
    运行

    2.过滤器AI

       Filter接口:

    init()方法
    Servlet容器最先调用过滤器的init()方法,初始化过滤器,生命周期中只调用一次
    doFilter()方法
    Servlet容器调用doFilter()方法处理请求
    destroy()方法
    Servlet容器最后调用destroy()方法,释放过滤器所占的资源。

    接口/类

    所处包

    描述

    Filter

    javax.servlet

    过滤器类实现此接口

    FilterChain

    javax.servlet

    该接口实现对象实例由容器负责创建

    FilterConfig

    javax.servlet

    提供初始化参数

    ServletRequestWrapper

    javax.servlet

    ServletRequest接口的便利实现

    ServletResponseWrapper

    javax.servlet

    ServletResponse接口的便利实现

    HttpServletRequestWrapper

    javax.servlet.http

    HttpServletRequest接口的便利实现

    HttpServletResponseWrapper

    javax.servlet.http

    HttpServletResponse接口的便利实现

    3.配置过滤器:

     <filter>
         <filter-name>

         <filter-class>

         <description>

          <init-parm>

                 <parm-name>

                  <parm-value>

         <filter-mapping>

          <filter-name>

         <url-pattern>

       Filter过滤器链:

    Web容器加载的顺序:web.xml文件中配置的Filter的倒序
    拦截执行顺序:web.xml文件中配置的Filter的正序
    销毁顺序:web.xml文件中配置的Filter的倒序

    Filter注意事项:

    Filter配置过滤器链
    Servlet容器可以对同一个过滤器对象运行多个线程来同时处理多个请求。

  • 相关阅读:
    JAVA-初步认识-第十三章-验证静态同步函数的锁
    JAVA-初步认识-第十三章-多线程(验证同步函数的锁)
    JAVA-初步认识-第十二章-面向对象(包与包之间的访问)
    JAVA-初步认识-第十二章-面向对象(包的概述)
    JAVA-初步认识-第十三章-同步函数
    Fatal error: Call to undefined function imagettftext()解决办法
    ecstore菜鸟电子面单对接摘要
    linux crontab 实现每秒执行(转)
    ios9 URL Schemes列为白名单,才可正常检查其他应用是否安装
    主机宝等主机面板不能跨站访问文件,不能访问父路径文件问题
  • 原文地址:https://www.cnblogs.com/Firesun/p/9671309.html
Copyright © 2011-2022 走看看