zoukankan      html  css  js  c++  java
  • Java之Filter过滤器

    Filter过滤器

      配置方式:web.xml

    <filter>
      <filter-name>Demo097</filter-name>
      <filter-class>cn.xinx.web.FilterDemo097</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>Demo097</filter-name>
      <!-- 拦截路径 -->
      <url-pattern>/*</url-pattern>
    </filter-mapping>

       过滤器生命周期

        init:在服务器启动后,会创建Filter对象,然后调用init方法;

        doFilter:每一次请求被拦截资源时,会执行;

         destroy:在服务器正常关闭后,Filter对象被销毁;释放资源;

      注解方式:

        @WebFilter("/*")  访问所有资源之前,都会执行该过滤器

      过滤器配置

    具体资源路径: /index.jsp  只有访问index.jsp资源时,过滤器才会被执行

    拦截目录: /xin/*  访问/xin下的所有资源时,过滤器都会被执行

    后缀名拦截: *.jsp  访问所有后缀名为jsp资源时,过滤器都会被执行

    拦截所有资源:/*  访问所有资源时,过滤器都会被执行

      拦截方式配置:  配置资源被访问到的方式

        注解配置:

        设置dispatcherTypes属性

        1 FEQUEST  默认  浏览器直接请求资源时拦截

        2 FORWARD  转发  只有转发访问资源时拦截

        3 INCLUDE  包含  包含访问资源

        4 ERROR  错误  错误跳转资源

        5 ASYNC  异步  异步访问资源

    @WebFilter(value="/*", dispatcherTypes = DispatcherType.REQUEST)  请求时拦截

    @WebFilter(value="/*", dispatcherTypes ={ DispatcherType.REQUEST, DispatcherType.FORWARD}) 请求和转发都拦截

        web.xml配置:

          设置<dispatcher> 5个值 </dispatcher>标签即可

         过滤器链(配置多个过滤器)

          执行顺序   执行顺序:如果有两个过滤器:过滤器1和过滤器2

            1 - 2 - 资源 - 2 - 1

        先后顺序问题:

          注解配置:按照类名的字符串比较规则比较,值小的先执行

            FilterA  和 FilterB  A先执行,

          web.xml配置: <filter-mapping>谁定义在上边,谁先执行

     

  • 相关阅读:
    Linux rpm 安装MySQL
    AOP 底层实现原理
    7 AOP
    HTTP 协议
    Oracle JDBC 标准连接实例
    Oracle JDBC 连接池
    Anaconda XGBoost安装
    Anaconda Spyder 导入自定义函数(模块)
    Hive常用sql
    决策树之信息增益计算模拟
  • 原文地址:https://www.cnblogs.com/zxh06820/p/12464965.html
Copyright © 2011-2022 走看看