过滤器 Filter

来源:互联网 发布:广州宏强网络 编辑:程序博客网 时间:2024/06/05 08:58
一、 过滤器 Filter 
1. 什么是 Filter? 
针对通用WEB服务、功能,透明的处理 
2. 什么是 Servlet Filter? 
     过滤是 Servlet 2.3 版才引入的新特性。过滤器可以认为是实现 Http 请求、响应以及头信息等内容的传送的代码片断。 
     过滤器并不能创建响应,但它可以“过滤”传给 servlet 的请求,还可以“过滤”从 servlet发送到客户端的响应; 
     它不仅能处理静态内容,还可以处理动态内容。换而言之,filter 其实是一个“servlet chaining”(servlet 链)。 
   一个 filter 包括: 
    1) 在 servlet 被调用之前截获; 
    2) 在 servlet 被调用之前检查 servlet request; 
    3) 根据需要修改 request 头和 request 数据; 
    4) 根据需要修改 response 头和 response 数据; 
    5) 在 servlet 被调用之后截获. 

3. 过滤器的生命周期 
   Filter 组件的生命周期与 Servlet 的类似。 
   过滤器有四个阶段(与servlet类似): 
    1) 实例化; 
    2) 初始化(调用init()方法); 
    3) 过滤(调用doFilter()方法); 
    4) 销毁(调用destroy()方法);