过滤器filter30分钟搞清楚.docx
- 文档编号:8312235
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:14
- 大小:1.20MB
过滤器filter30分钟搞清楚.docx
《过滤器filter30分钟搞清楚.docx》由会员分享,可在线阅读,更多相关《过滤器filter30分钟搞清楚.docx(14页珍藏版)》请在冰豆网上搜索。
过滤器filter30分钟搞清楚
非常重要
一、过滤器概述
1、过滤器概念及作用
它是Servlet2.3规范中加入的一个接口。
是Servlet规范中非常实用的技术。
它可以对web应用中的所有资源进行拦截,并且在拦截之后进行一些特殊的操作。
常见应用场景:
URL级别的权限控制;过滤敏感词汇;中文乱码问题等等。
2、Filter接口
它是javax.servlet包下的一个接口。
接口中的方法:
二、过滤器编写步骤和执行过程
1、编写步骤
就两步:
第一步:
编写一个类实现Filter接口。
第二步:
配置过滤器,使其执行过滤任务。
2、执行过程
初始化方法:
销毁方法:
过滤(拦截)方法:
原因:
过滤器只是拦截了,但是并没有放行!
如何放行呢?
问题:
我们在访问资源之前会经过过滤器,在响应客户浏览器之前,还会不会经过过滤器呢?
问题:
当配置资源不是/*之后,那么过滤器是如何工作的呢?
问题:
我们在过滤器放行之后,就真的可以访问到我们要访问的资源吗?
当有多个过滤器的话,到底是如何执行的呢?
3、过滤器的生命周期
出生——活着——死亡
出生:
当应用加载的时候执行实例化和初始化方法。
对象创建。
活着:
只要应用一直提供服务,对象就一直存在。
死亡:
当应用卸载时,或者服务器宕机时,对象消亡。
Filter的实例对象在内存中也只有一份。
所以也是单例的。
4、Filter和Servlet的区别
方法/类型
Servlet
Filter
备注
初始化方法
voidinit(ServletConfig);
voidinit(FilterConfig);
几乎一样,都是在web.xml中配置参数,用该对象的方法可以获取到。
提供服务方法
voidservice(request,response);
voiddofilter(request,response,FilterChain);
Filter比Servlet多了一个FilterChain,它不仅能完成Servlet的功能,而且还可以决定程序是否能继续执行。
所以过滤器比Servlet更为强大。
在Struts2中,核心控制器就是一个过滤器。
销毁方法
voiddestroy();
voiddestroy();
三、多个过滤器的执行顺序
1、多个过滤器的协同工作
问题:
如何确定到底哪个过滤器先执行呢?
2、多个过滤器的执行顺序
四、四个简单的案例
1、解决请求参数(POST方式)和响应输出的乱码问题
2、动态资源不要缓存
3、静态资源控制缓存时间
4、分IP统计访问次数
五、过滤器的高级配置
1、配置过滤器的拦截行为
原理:
配置方式:
六、二个高级案例
1、解决全站中文乱码
2、过滤html标记(特殊字符)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 过滤器 filter30 分钟 搞清楚
![提示](https://static.bdocx.com/images/bang_tan.gif)