【我的javaEE学习】过滤器简单学习
一、过滤器
1、概述:过滤器属于Servlet规范,过滤器就是对访问的内容进行筛选(拦截)。利用过滤器对请求和响应进行过滤。
2、编码步骤:
a、编写一个类:实现javax.servlet.Filter接口
b、配置web.xml,指定需要过滤的资源。(和Servlet的配置相当类似)
3、过滤器的执行过程(生命周期)
生命周期:
诞生:过滤器的实例是在应用被加载时就完成的实例化,并初始化的。
存活:和应用的生命周期一致的。在内存中是单例的。针对拦截范围内的资源访问,每次访问都会调用void doFIlter(request,response.chain)进行拦截。
死亡:应用被卸载。
4、串联过滤器
一个过滤器接着另外一个过滤器。执行的顺序按web.xml里的配置顺序来执行,结束按原路结束,即最先执行的最后销毁。
5、过滤器配置细节
6、案例:
⑴解决请求参数(POST)和响应输出的乱码过滤器
或者用参数设置,不用写死
解决GET过滤器
⑵关键字过滤器
⑶html标记过滤器
Servlet VS. Filter
Servlet:(控制器)
1、每一个Servlet内存中唯一。
2、load-on-startup就可以使Servlet在启动时就完成初始化
3、用户的每次请求都会经过void service(request,response)
4、配置映射为/*时,所有的请求都会经过该Servlet
Filter:(控制器)
1、每一个Filter内存中唯一。
2、启动时就完成初始化
3、用户的每次请求都会经过void doFIlter(request,response)
4、配置映射为/*时,所有的请求都会经过该过滤器
不同:过滤器要比Servlet强大,过滤器有权利决定是否放行。
总结:Servlet能做的,Filter都能做。