`

过滤器

阅读更多

1. 过滤器在Web开发中的一些主要应用:


1. 对用户请求进行统一认证;
2. 用户的访问进行记录和审核;
3. 对用户发送的数据进行过滤和替换;
4. 转换图像格式;
5. 对响应内容进行压缩,减少传输量;
6. 对请求和响应进行加解密处理。

 

 

2. 过滤器生命周期的各个阶段:


1.实例化        Servlet容器创建Filter实例对象。
2.初始化        调用init()方法,完成对象的初始化功能,只执行一次。
3.过滤           调用doFilter()方法,该方法中定义过滤规则。
4.销毁           调用destroy()方法销毁Filter对象,释放过滤器使用的资源。

 

3. 有关过滤器的API

 

Filter

过滤器必须是一个实现Filter接口的类的对象,它根据用户的请求和资源的响应进行过滤。

Filter 接口包含以下方法:
 public void init(FilterConfig fg) //被容器调用,初始化过滤器
 public void doFilter(ServletRequest req,ServletResponse res, FilterChain chain) // 每当有请求或响应时被容器调用,进行过滤
 public void destroy() //被容器调用,销毁过滤器

 

FilterChain

FilterChain接口用于调用过滤器链中的一系列过滤器,通过该接口把被过滤的任务在Filter间传递,它的主要方法:
 public void doFilter(ServletRequest req, ServletResponse res) //调用下一个过滤器,若无下一过滤器,则将请求或响应传递到目标

 

FilterConfig

FilterConfig对象由容器提供给过滤器,以允许访问该过滤器的初始化数据(web.xml中配置)
FilterConfig 接口包含以下方法:
 String getFilterName():得到filter的名称。
 String getInitParameter(String name): 返回在部署描述中指定名称的初始化参数的值。如果不存在返回null。
 Enumeration getInitParameterNames():返回过滤器的所有初始化参数的名字的枚举集合。
 public ServletContext getServletContext():返回Servlet上下文对象的引用。

 

4. 实现过滤器的步骤


 1.创建一个实现javax.servlet.Filter接口的类
 2.实现init()方法,读取过滤器的初始化参数
 3.实现doFilter()方法,完成对请求或过滤的响应
 4.调用FilterChain接口对象的doFilter()方法,向后续的过滤器传递请求或响应
 5.在web.xml中配置Filter,对需要过滤的资源进行配置

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics