"Filter是Servlet规范2.3版及更新版所支持的一种机制。和Servlet/JSP不同,Filter自己往往不会直接产生response,相反,它提供了一种“符加”的功能,可以作用在任何一个servlet、JSP以及其它filter之上。"
其实现的功能包括:
[table]
|页面授权|根据登录用户的权限,阻止或许可用户访问特定的页面
|日志和审计|记录和检查用户访问WEB应用的情况。
|图片转换|改变图片的格式、精度、尺寸等。
|页面压缩|压缩页面内容,加快下载速度。
|本地化|显示本地语言和风格的页面。
|XSLT转换|对XML内容进行XSLT转换,使之适用于多种客户端。
|高速缓存|高速缓存页面,提高响应速度。
[/table]
每一个Filter可能会做下面的事情:
[table]
|继续传递控制权或立即终止filter chain。|Filter可将控制权传递给链条中的下一个filter或者最终的servlet。
Filter也可以不将控制权传递给下一个filter或servlet,这样便中止了整个filter chain的执行。
|预处理。在传递控制权给下一个filter或servlet之前,filter可以预先做一些事情:|设置request、response中的参数,例如:character encoding、content type等。
将HttpServletRequestWrapper传递给链条中的下一位,filter可以通过wrapper改变request中的任意值。
将HttpServletResponseWrapper传递给链条中的下一位,filter可以通过wrapper来拦截后续filter或servlet对response的修改。
|提交。在控制权从filter chain中返回以后,filter还可以做一些后续提交的操作。|例如,将response中拦截而来的数据,压缩或转换格式,并发送给客户端或filter chain的上一级。
通过try、catch还可以捕获filter chain下一级所有的异常,并做处理。
[/table]
其实现的功能包括:
[table]
|页面授权|根据登录用户的权限,阻止或许可用户访问特定的页面
|日志和审计|记录和检查用户访问WEB应用的情况。
|图片转换|改变图片的格式、精度、尺寸等。
|页面压缩|压缩页面内容,加快下载速度。
|本地化|显示本地语言和风格的页面。
|XSLT转换|对XML内容进行XSLT转换,使之适用于多种客户端。
|高速缓存|高速缓存页面,提高响应速度。
[/table]
每一个Filter可能会做下面的事情:
[table]
|继续传递控制权或立即终止filter chain。|Filter可将控制权传递给链条中的下一个filter或者最终的servlet。
Filter也可以不将控制权传递给下一个filter或servlet,这样便中止了整个filter chain的执行。
|预处理。在传递控制权给下一个filter或servlet之前,filter可以预先做一些事情:|设置request、response中的参数,例如:character encoding、content type等。
将HttpServletRequestWrapper传递给链条中的下一位,filter可以通过wrapper改变request中的任意值。
将HttpServletResponseWrapper传递给链条中的下一位,filter可以通过wrapper来拦截后续filter或servlet对response的修改。
|提交。在控制权从filter chain中返回以后,filter还可以做一些后续提交的操作。|例如,将response中拦截而来的数据,压缩或转换格式,并发送给客户端或filter chain的上一级。
通过try、catch还可以捕获filter chain下一级所有的异常,并做处理。
[/table]