• 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>

  • 相关阅读:
    Apache工作原理
    Mysql主从复制
    Apache 工作模式
    Codeforces 932E Team Work
    【TJOI2018】教科书般的亵渎
    Codeforces 960G Bandit Blues
    斯特林数&斯特林反演
    【BZOJ4916】神犇与蒟蒻
    【BZOJ3944】Sum
    【BZOJ4805】欧拉函数求和
  • 原文地址:https://www.cnblogs.com/Theladyflower/p/4505111.html
Copyright © 2020-2023  润新知