• 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>谁定义在上边,谁先执行

     

  • 相关阅读:
    8-4:Mysql数据库编程基础知识
    adb——Android的ADB工具使用
    BroadcastReceiver--Android广播机制
    怎样投篮更准
    《算法七》(深度寻路算法)
    《算法六》(有序二叉树)
    《算法五》(N叉树定义+增删改查)
    《算法四》(二分排序+汉诺塔问题)
    《算法三》(归并排序)
    《算法二》(希尔排序+基数排序+桶排序)
  • 原文地址:https://www.cnblogs.com/zxh06820/p/12464965.html
Copyright © 2020-2023  润新知