过滤器
过滤器要做的事情
请求过滤器
-
完成安全检查
-
重新格式化请求首部或体
-
建立请求审计或日志
响应过滤器
-
压缩响应流
-
追加或修改响应流
-
创建一个完全不同的响应
注意不能把过滤器的顺序依赖性硬编码进程序中,它应该由DD控制。
过滤器很像Servlet
1 容器知道过滤器的API
一个普通Java类实现了Filter接口后,这个Java会发生巨大的变化,成为一个正是的J2EE过滤器。
2 容器管理过滤器的生命周期
类似与Servlet过滤器也有init和destory方法。对应于Servlet的doGet/doPost方法,过滤器则有一个doFilter方法。
3 都在DD中声明
Web应用可有多个过滤器,一个给定的请求可能导致执行多个过滤器。针对请求要运行那些过滤器,以及运行的顺序如何,都可以在DD中声明。
过滤器生命周期
每个过滤器必须实现的Filter接口中的3个方法:init、doFilter、destory。
声明和确定过滤器顺序
在DD中配置过滤器:
REQUEST表示:对客户端请求启用过滤器。
INDLUDE表示:对由一个include()调用分派来的请求启用过滤器。
RORWARD表示:对由一个forward()调用分派来的请求启用过滤器。
ERROR表示:对错误处理器调用的资源启用过滤器。
确定过滤器顺序的规则:
1、先找到与URL模式匹配的所有过滤器。
2、将所有匹配的过滤器按照其在DD中声明的顺序组成一个链。
作者:禅楼望月
出处:http://www.cnblogs.com/yaoyinglong
如果,您认为阅读这篇博文让您有些收获,不妨点击一下右下角的【推荐】
如果,您希望这篇博文也能帮助到其他人,不妨点击一下右边的【分享到…】
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】
如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【禅楼望月】
本文版权归作者和博客园共有,欢迎转载,但请注明出处,且在文章页面明显位置给出原文连接。