Filter过滤器

Filter?

  1. 它是JavaWeb的三大组件之一。(Servlet程序、Listener监听器、Filter过滤器)
  2. JavaEE的规范,也就是接口
  3. 作用就是:拦截请求,过滤响应
  4. 常用拦截请求:权限检查,日志操作,事物管理…

使用步骤?

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

生命周期,包含的几个方法?

  1. 构造器方法
  2. init初始化方法
    第1,2步,在web工程启动的时候执行(filter已经创建)
  3. doFilter过滤方法
    第3步,每次拦截请求就会执行
  4. destory销毁
    第4步,停止web工程的时候,就会执行(停止web工程,也会销毁filter过滤器)

FilterConfig类?

  1. 是filter过滤器的配置文件类。
  2. tomcat每次创建filter的时候,也会同时创建一个FilterConfig类,这里包含了Filter配置文件的配置信息。
  3. FilterConfig类的作用是获取filter过滤器的配置内容
    a. 获取filter的名称filter-name的内容
    b. 获取在web.xml中配置的init-parm初始化参数
    c. 获取servlletContext对象

FilterChain 过滤器链,FilterChain 就是过滤器链(多个过滤器如何一起工作)

  1. FilterChain.doFilter()方法的作用
    a、执行下一个Filter过滤器(如果有Filter)
    b、执行目标资源(没有Filter)
    在多个Filter过滤器执行的时候,它们执行的优先顺序是由他们在web.xml中从上到下配置的顺序决定
  2. 多个Filter过滤器执行的特点:
    a、所有filter和目标资源默认都执行在同一个线程中
    b、多个Filter共同执行的时候,它们都使用同一个Request对象。

Filter的拦截路径

  1. 精确匹配
  2. 目录匹配
  3. 后缀名匹配
    filter过滤器只关心请求的地址是否匹配,不关心请求的资源是否存在!

ThreadLocal的使用

作用就是可以解决多线程的数据安全问题。
可以给当前线程关联一个数据(可以是变量、对象、数组、集合)
特点:
a. 可以为当前线程关联一个数据(它可以像map一样存储数据,key为当前线程)
b. 每一个ThreadLocal对象,只能为当前线程关联一个数据,如果要为当前线程关联多个数据,就需要使用多个ThreadLocal对象实例。
c. 每个ThreadLocal对象实例定义的时候,一般都是static类型。
d. ThreadLocal中保存数据,在线程销毁后,会由jvm虚拟自动释放


json

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页