JSP-12-使用过滤器和监听器

1 什么是过滤器及其工作方式

   向Web应用程序的请求和响应添加功能的Web组建

   过滤器可以统一的集中处理请求和响应

 

15.2 过滤器的实现

新建 filter ,注意此时是在 src中建立的(同class的创建位置一样)。

解决乱码问题:

         public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

             request.setCharacterEncoding("utf-8");

                   chain.doFilter(request, response);

                   response.setCharacterEncoding("utf-8");

         }

Web.xml

  <filter>

    <display-name>filter</display-name>

    <filter-name>filter</filter-name>

    <filter-class>com.db.news.web.fileter.filter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>filter</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

具体实现步骤:

  1. 建立实现 Filter 接口的类  javax.servlet.Filter
  2. 实现过滤行为/调用下一个过滤器或web资源

 

  1. 在web.xml中配置过滤器

 

匹配顺序:

1)  完全匹配 : /index.jsp

2)  目录扩展匹配: /admin/*

3)  扩展名匹配: *.do

4)  全部匹配:   /*

初始化参数和过滤器链

配置过滤器的初始化参数

读取过滤器的初始化参数

多个过滤器会形成过滤器链,它的访问顺序根据 <filter-mapping> 中的配置从上到下依次匹配。

          

15.3 过滤器的生命周期

1. 实例化: 开辟内存空间,只执行一次

2. 初始化: init()   只执行一次

3. 过滤: doFilter()  用户请求页面进行匹配

4. 消耗: destroy()  只执行一次

 

15.4  使用过滤器的场合

对请求,响应进行统一处理

对请求进行日志记录和审核

对数据进行屏蔽和替换

对数据进行加密和解密

15.5 监听器

在访问资源的过程中,发生某些特定过程时进行相应的操作。

例:统计在线的人数

  1.  创建类实现监听器接口

Javax.servlet.http.HttpSessionBindingListener;

  1. 在valueBound和valueUnbound方法中实现用户数量的统计

valueBound(HttpSessionBindingEvent arg0){

           //用户对象存入session时自动调用

    //用户数量添加1

}

valueUnbound(HttpSessionBindEvent arg0){

           //用户对象从session中删除时自动调用

    //用户数量减1

}

  1. 在web.xml中配置监听器(此项默认生成)

   <listener>

           <listener-class>监听器完全限定名</listener-class>

   <listener>

原文地址:https://www.cnblogs.com/Theladyflower/p/4505111.html