ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Filter过滤器

2022-05-14 12:33:53  阅读:135  来源: 互联网

标签:filter 匹配 请求 Filter 放行 过滤器 Target04Filter


1、过滤器三要素

  • 拦截:一个请求必须先把它拦住,才能做后续处理
  • 过滤:预设的检查条件,满足条件才可以放行
  • 放行:对于满足要求的请求,放它过去,让它原本要访问什么资源就继续还是访问那个资源

2、过滤器生命周期

生命周期环节调用的方法时机次数
创建对象 无参构造器 默认:Web应用启动时 一次
初始化 init(FilterConfig filterConfig) 创建对象后 一次
处理请求 doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
接收到请求后 多次
清理操作 destroy() Web应用卸载之前 一次

3、拦截请求时的匹配规则

  • 精确匹配
    <!-- 配置Filter要拦截的目标资源 -->
    <filter-mapping>
        <!-- 指定这个mapping对应的Filter名称 -->
        <filter-name>Target01Filter</filter-name>
    
        <!-- 通过请求地址模式来设置要拦截的资源 -->
        <url-pattern>/Target01Servlet</url-pattern>
    </filter-mapping>
  • 模糊匹配★
    • 前杠后星:/user/*
      <filter-mapping>
          <filter-name>Target02Filter</filter-name>
      
          <!-- 模糊匹配:前杠后星 -->
          <!--
              /user/Target02Servlet
              /user/Target03Servlet
              /user/Target04Servlet
          -->
          <url-pattern>/user/*</url-pattern>
      </filter-mapping>
    • 前星后缀:*.html
      <filter>
          <filter-name>Target04Filter</filter-name>
          <filter-class>com.atguigu.filter.filter.Target04Filter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>Target04Filter</filter-name>
          <url-pattern>*.png</url-pattern>
      </filter-mapping>
  • 根据Servlet名称匹配

4、Filter链

  • 概念:拦截同一资源的多个Filter
  • 执行顺序:由web.xml中filter-mapping配置的顺序决定
  • chain.doFilter(requset,response):将请求放行到Filter链中的一下一个Filter,如果当前Filter已经是最后一个了,那么直接放行这个请求去访问原本要访问的资源

标签:filter,匹配,请求,Filter,放行,过滤器,Target04Filter
来源: https://www.cnblogs.com/ai377377/p/16269620.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有