Filter

什么是Filter

Filter 过滤器是 JavaWeb 三大组件之一
Filter 过滤器 JavaEE 的规范
Filter 过滤器它的作用是:拦截请求,过滤响应

Filter流程图

Filter的使用步骤

  1. 编写一个类去实现 Filter 接口
  2. 实现过滤方法 doFilter()
  3. 到 web.xml 中去配置 Filter 的拦截路径

Filter生命周期

  1. 构造器:当需要调用 Filter 的拦截但没有实例时,调用 Filter 的构造器创建 Filter 的实例
  2. init:当 Filter 被实例化时,将调用 init() 方法初始化 Filter
  3. doFilter:拦截到请求调用 doFilter 的处理
  4. destroy:当 Web 工程关闭或 Filter 长时间不被使用,则调用 destroy 方法销毁 Filter 实例

FilterConfig类

Filter 过滤器的配置文件类
包含了 Filter 配置文件的所有信息

作用

  • 获取 Filter 的名称 filter-name 的内容
  • 获取在 Filter 中 web.xml 配置的 init-param 初始化参数
  • 获取 ServletContext 对象

FilterChain过滤器链

执行细节

优先顺序为 web.xml 中从上到下配置的顺序

特点

  • 所有 filter 和目标资源默认都执行在同一个线程中
  • 多个 Fliter 过滤器同时执行的时候,他们都要使用同一个 Request 对象

Filter的拦截路径

  • 精确匹配
    1
    2
    3
    4
    <filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/target.jsp</url-pattern>
    </filter-mapping>
  • 目录匹配
    1
    2
    3
    4
    <filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/admin/*</url-pattern>
    </filter-mapping>
  • 后缀名匹配
    1
    2
    3
    4
    <filter-mapping>
    <filter-name>filter2</filter-name>
    <url-pattern>*.html</url-pattern>
    </filter-mapping>

Filter
http://yjh-2860674406.github.io/2023/07/07/编程/JAVAEE/Filter/
Author
Ye JinHua
Posted on
July 7, 2023
Licensed under