Filter过滤器的作用
作用:拦截请求,过滤响应
拦截请求常见的应用场景:1、权限检查 ;2、日志操作;3、事务管理 ……
Filter过滤器的使用
1.编写一个类去实现Filter接口
2.实现过滤 方法doFilter()
3.到web.xml中配置Filter的拦截路径
1 |
|
1 | <filter> |
Filter的生命周期
Filter生命周期包含的方法:
Web工程启动时就创建了:1、构造器方法;2、init 初始化方法
每次拦截到请求就开始执行:3、doFilter 过滤方法
Web工程停止时:4、destory 销毁方法
FilterConfig类
包含了Filter过滤器的配置信息
FilterConfig类的作用是获取filter过滤器的配置信息:
1、获取Filter的名称filter-name的内容
2、获取Filter中配置的init-param的初始化参数
3、获取ServletContext对象
FilterChain过滤器链
Filter的拦截路径
1、精确匹配,拦截的是指定路径的一个资源,请求地址必须是 : http://ip:port/工程路径/a.jsp
1 | <filter-mapping> |
2、目录匹配,拦截的是目录下的所有资源
1 | <filter-mapping> |
3、后缀名匹配,拦截的是指定后缀名的资源
1 | <filter-mapping> |
Filter只关心请求地址是否匹配,不关心资源是否存在。
ThreadLocal的使用
作用:解决线程安全问题。
ThreadLocal可以给当前线程关联一个数据(普通变量,对象,数组,集合)。
ThreadLocald 特点:
1、ThreadLocal可以为当前线程关联一个数据;(可以像Map一样存取数据,key为当前线程);
2、每一个ThreadLoacl对象,只能为当前线程关联一个数据;
3、每个ThreadLocal对象实例化时,一般都是static类型;
4、ThreadLocal中保存的数据,在线程销毁后,JVM自动释放。