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

     

  • 相关阅读:
    如何在百度文库里面免费下载东西
    CompareTo
    MySql常用日期函数(转载)
    Oracle之ORDER BY
    Spring之Ioc
    在使用与测绘有关软件中的困难
    HDOJ_1008_Elevator
    HDOJ_1005_Number Sequence
    HDOJ_1004_Let the Balloon Rise
    HDOJ_1003_MaxSum
  • 原文地址:https://www.cnblogs.com/zxh06820/p/12464965.html
Copyright © 2011-2022 走看看