J2EE Architecture(8)
1、过滤
过滤(filtering)是Servlet2.3版的新特性。过滤器(Filter)是轻量级的Web组件,能及时转换HttpServletRequest和HttpServletResponse对象的头和内容。
Filter和Servlet都是Web应用程序的一部分,都用生命期方法管理。
Filter为Servlet的请求/响应操作提供过滤服务。过滤器可以“过滤”传给Servlet的请求,也可以“过滤”将要从Servlet发送到客户端的响应,它们不仅处理静态内容,也处理动态内容。
Web应用程序可用的一些过滤组件如下:
1)身份验证Filter
2)加密Filter
3)转换Filter
开发人员可以通过Filter接口创建Filter。与Servlet一样,Filter的相关信息也在部署描述符中提供。
可通过定义部署描述符中的“Filter-映射”元素配置Filter或一些相关Filter的集合,以方便调用。
Filter的生命期:有3个方法用来管理Filter生命期。
1)init()方法;
init()方法用FilterConfig对象初始化Filter。
如初始化成功,就做好了“请求-响应”操作上执行过滤操作的准备。
当容器收到客户请求时,将使用Filter列表中的第一个Filter实例,并调用doFilter()方法。
2)doFilter()方法;
doFilter()方法会接收3个对象:HttpServletRequest、HttpServletResponse和FilterChain。
可按以下方法使用Web应用程序的Filter组件:
(1)分析HTTP请求的头;
(2)可能用HttpServletRequest的定制实现包装请求对象,以适当修改头或数据;
JavaEE,青软培训