Filter:过滤器 2020-03-02

Filter:过滤器

概念:

  • web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。

  • 过滤器的作用:

    • 一般用于完成通知的操作。如:登陆验证、统一编码处理、敏感字符过滤。。。

快速入门:

  1. 步骤:

    1. 定义一个类,实现接口Filter

    2. 复写方法

    3. 配置拦截路径

      1. web.xml配置

      2. 注解配置

        @webFilter("/*")//访问所有资源时都会执行该过滤器`

    4. 放行代码:

      filterChain.doFilter(servletRequest,servletResponse);

过滤器细节:

  1. web.xml配置

   <filter>

   <filter-name>demo1</filter-name>

   <filter-class>cn.qiqi.web.filter.Filterdemo1</filter-class>

   </filter>

   <filter-mapping>

   <filter-name>demo1</filter-name>

   <!-- 拦截路径-->

   <url-pattern>/-</url-pattern>

   </filter-mapping>

  1. 过滤器执行流程

    1. 执行过滤器

    2. 执行放行后的资源

    3. 回来执行过滤器放行代码下边的代码

  2. 过滤器生命周期方法

    1. init: 在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次,用于加载资源。

    2. doFilter: 每次请求被拦截资源时,会执行。执行多次。

    3. destroy: 在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭的,则执行一次destroy方 法,只执行一次,用于释放资源。

  3. 过滤器配置详解

  • 拦截路径配置:

    1. 具体资源路径:

      /index.jsp

    2. 拦截目录;

      /user/*

    3. 后缀名拦截:

      *.jsp

    4. 拦截所有资源:

      /*

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

    • 注解配置:

    • 设置dispatcherTypes属性

      1. REQUEST : 默认值。浏览器直接请求资源

      2. FORWARD : 转发访问资源

      3. INCLUDE : 包含访问资源

      4. ERROR : 错误跳转资源

      5. ASYNC : 异步访问资源

    • web.xml配置

      • 设置<dispatcher></dispatcher>标签即可
  1. 过滤器链(配置多个过滤器)
  • 执行顺序 :如果有两个过滤器:1和2

    1. 1

    2. 2

    3. 资源执行

    4. 2

    5. 1

  • 过滤器先后顺序问题:

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。