Javaweb学习之servlet扩展:监听器与过滤器

十七。Servlet规范扩展-----------------监听器接口

   1.介绍:

          1)一组来自于Servlet规范下接口,共有8个接口。在Tomcat存在servlet-api.jar包

      2)监听器接口需要由开发人员亲自实现,Http服务器提供jar包并没有对应的实现类

      3)监听器接口用于监控【作用域对象生命周期变化时刻】以及【作用域对象共享数据变化时刻】

    2.作用域对象:

       1)在Servlet规范中,认为在服务端内存中可以在某些条件下为两个Servlet之间提供
          数据共享方案的对象,被称为【作用域对象】

           2)Servlet规范下作用域对象:
           ServletContext:   全局作用域对象
       HttpSession   :    会话作用域对象
       HttpServletRequest:请求作用域对象

    3.监听器接口实现类开发规范:三步

        1)根据监听的实际情况,选择对应监听器接口进行实现

    2)重写监听器接口声明【监听事件处理方法】

    3)在web.xml文件将监听器接口实现类注册到Http服务器

    4.ServletContextListener接口:

        1)作用:通过这个接口合法的检测全局作用域对象被初始化时刻以及被销毁时刻

    2)监听事件处理方法:

                public void contextInitlized() :在全局作用域对象被Http服务器初始化被调用

            public void contextDestory():      在全局作用域对象被Http服务器销毁时候触发调用

  5.ServletContextAttributeListener接口:

             1)作用:通过这个接口合法的检测全局作用域对象共享数据变化时刻

     2)监听事件处理方法:

                     public void contextAdd():在全局作用域对象添加共享数据
             public void contextReplaced():在全局作用域对象更新共享数据
             public void contextRemove():在全局作用域对象删除共享数据

 6.全局作用域对象共享数据变化时刻

                             ServletContext application = request.getServletContext();

             application.setAttribute("key1",100); //新增共享数据

             application.setAttribute("key1",200); //更新共享数据
             
             application.removeAttribute("key1");  //删除共享数据

十八:Servlet规范扩展-----------------Filter接口(过滤器接口)

   1.介绍:
           1)来自于Servlet规范下接口,在Tomcat中存在于servlet-api.jar包

       2)Filter接口实现类由开发人员负责提供,Http服务器不负责提供

       3)Filter接口在Http服务器调用资源文件之前,对Http服务器进行拦截

   2.具体作用:

            1)拦截Http服务器,帮助Http服务器检测当前请求合法性

    2)拦截Http服务器,对当前请求进行增强操作

   3.Filter接口实现类开发步骤:三步

             1)创建一个Java类实现Filter接口

     2)重写Filter接口中doFilter方法

     3)web.xml将过滤器接口实现类注册到Http服务器

   4.Filter拦截地址格式

             1) 命令格式:
                 <filter-mapping>
                <filter-name>oneFilter</filter-name>
            <url-pattern>拦截地址</url-pattern>
             </filter-mapping>
             2) 命令作用:
                   拦截地址通知Tomcat在调用何种资源文件之前需要调用OneFilter过滤进行拦截


             3)要求Tomcat在调用某一个具体文件之前,来调用OneFilter拦截
                   <url-pattern>/img/mm.jpg</url-pattern>

             4)要求Tomcat在调用某一个文件夹下所有的资源文件之前,来调用OneFilter拦截
                    <url-pattern>/img/*</url-pattern>

             5)要求Tomcat在调用任意文件夹下某种类型文件之前,来调用OneFilter拦截
                    <url-pattern>*.jpg</url-pattern>

             6)要求Tomcat在调用网站中任意文件时,来调用OneFilter拦截
                    <url-pattern>/*</url-pattern>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容