过滤器的作用是什么?
1.拦截传入的请求和传出的响应,能拿到请求和响应中的数据
2.监视,修改,或处理正在客户端和服务器之间交换的数据流
3.利用过滤器的执行时机,实现Web程序的预处理,和后期的处
理逻辑!
A)日志记录,实时记录请求
B)改善性能,手机访问可以先预处理图片等
C)安全与会话管理,用session里的值判断用户是否登录等
D)敏感字过滤,违法信息过滤
4.设置编码,处理中文乱码
Filter和Listener同常放在web包中
和servlet一样,都需要config配置,都需要初始化,都需要重写处理方法,都有销毁
FilterConfig接口
过滤器的使用
编写过滤器的步骤?
1:创建过滤器,实现Filter接口(javax.servlet.包下),
实现doFilter()方法/init()方法
a):正确的话:调用写一个Web资源
b):错误的话:导航到其它的URL
2:部署过滤器
a)编写Filter到/WEB-INF/class目录
<filter></filter>
<filter-mapping>
<url-patten>指定需要过滤的url</url-patten>
</filter-mapping>
3:启动服务器,观察Web资源,和过滤效果
1:创建过滤器
2:部署过滤器
容器会从class的路径去实例化filter。
设置乱码处理
过滤器的生命周期:
执行的顺序
生命周期
servlet和Filter在生命周期上的区别?
Servlet:当访问servlet的时候,容器会检查,如果还没
有servlet的实例,容器则会创建一个servlet实例。
一次应用过程只执行一次实例化和初始化
Filter:在容器启动的时候,就进行实例化,初始化的操作,
一次应用过程只执行一次实例化和初始化
什么是过滤器链?
一般把节省资源的Filter放在前面