JavaWeb开发——servlet监听器 listener

  一、Servlet监听器的概念

    Servlet监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件,

    以及监听这些域对象中属性发生修改的事件。

    监听对象:

      1、ServletContext:application,整个应用只存在一个

      2、HttpSession:session,针对每一个对话

      3、ServletRequest:request,针对每一个客户请求

    监听内容:创建、销毁、属性改变事件

    监听作用:可以在事件发生前、发生后进行一些处理,一般可以用来统计在线人数和在线用户、统计网站访问量、系统启动时初始化信息等。 

  二、监听器的基本使用

    创建步骤:

      1、创建一个实现监听器接口的类

      2、配置web.xml文件,注册监听器

<listener>
    <listener-class>完整路径名</listener-class>
</listener>

    监听器的启动顺序:按照web.xml的配置顺序来启动

    加载顺序:监听器>过滤器>Servlet

  三、监听器的分类

    3.1 按照监听的对象划分

      1、用于监听应用程序环境对象(ServletContext)的事件监听器,实现ServletContextListener、ServletContextAttributeListener接口

      2、用于监听用户会话对象(HttpSeesion)的事件监听器,实现HttpSessionListener、HttpSessionAttributeListener接口

      3、用于监听请求消息对象(ServletRequest)的事件监听器,实现ServletRequestListener、ServletRequestAttributeListener接口

    3.2按照监听事件划分 

      根据监听对象不同分别实现ServletContextListener、HttpSessionListener、ServletRequestListener接口。 

         在web.xml中可以配置项目初始化信息

<context-param>
    <param-name>属性名</param-name>
    <param-value>属性值</param-value>
</context-param>

      自定义监听器

public class MyFirstListener implements ServletContextListener{
    public void contextInitialized(ServletContextEvent sce){
        //获取web.xml中配置的属性
        String value=sce.getServletContext().getInitParameter("属性名");
        System.out.println(value);
  }
    public void contextDestroyed(ServletContextEvent sce){
        //关闭时操作
  }
}

    web.xml配置session超时参数,单位:分,session超时的时间并不是精确的

<session-config>
    <session-timeout>10</session-timeout>
</session-config>
原文地址:https://www.cnblogs.com/bekeyuan123/p/7096812.html