过滤器(Filter)的应用
过滤器的概念
Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。[http://www.oschina.net/question/565065_86538]
应用场合
- 设置字符编码的过滤器:通过配置参数encoding指明使用何种字符编码,以处理页面的中文问题。
- 使用Filter实现URL级别的权限认证:在实际开发中经常把一些执行敏感操作的Servlet映射到一些特殊目录中,并用Filter把这些特殊目录保护起来,限制只能拥有相应访问权限的用户才能访问这些目录下的资源。
- 实现用户自动登录的过滤器:在用户登录成功以后,发送一个名为user的Cookie给客户端,Cookie的值为用户名和密码加密后的密码。可以通过过滤器检查请求是否带有名为user的Cookie。如果有,则进行验证。
- 实现应用访问的日志:对于到达系统的所有请求,过滤器收集诸如浏览器类型、一天中的时间、转发URL等相关信息,并对它们进日志记录。
- XSLT转发:不管是使用移动客户端还是使用基于XML的Web服务,无需把逻辑嵌入应用程序就在XML语法之间执行转换的能力都绝对是无价的。
[赵俊峰,姜宁,焦学理. 北京: 清华大学出版社. JavaWeb应用程序开发案例教程 基于MVC模式的JSP+Servlet+JDBC和AJA-214 2012-1]