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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值