天天看点

Listener监听器JavaWeb学习笔记-Listener

JavaWeb学习笔记-Listener

什么是Listner

监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。

分类

按监听的对象划分,可以分为

  • ServletContext对象监听器
  • HttpSession对象监听器
  • ServletRequest对象监听器

    按监听的事件划分

  • 对象自身的创建和销毁监听器
  • 对象中属性的创建和消除的监听器
  • session中的某个对象的状态变化的监听

入门案例

创建一个类,实现ServletContextListener接口,复写初始化和销毁方法。

public class ListenerDemo1 implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ListenerDemo1对象创建了");
    }


    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ListenerDemo1对象销毁了");
    }
}
           

注册监听,只需要配置class,让Tomcat启动时被ClassLoader加载进内存,即可正常使用。

<listener>
    <listener-class>com.kaikeba.course06.ListenerDemo1</listener-class>
</listener>
           

ServletContext创建的时候,初始化方法就执行了。

Listener监听器JavaWeb学习笔记-Listener

使用场景

比如ServletContextListener的监听器,监听ServletContext对象的创建,而ServletContext表示整个Web容器,所以我们的初始化方法可以应用于加载资源文件,销毁方法应用于资源文件的关闭。一般而言实际开发时使用不多,大多数情况下,框架帮我们封装了Listner。

生命周期

开启服务器:

注意!

ServletContextListener

表示监听ServletContext对象,当ServletContext创建时,Listener初始化。

Listener的初始化早与Servlet的初始化。

Listener监听器JavaWeb学习笔记-Listener

关闭服务器:

Listener随着ServletContext对象的销毁而销毁,就像陪葬一样,早于所有的Servlet先被销毁。

Listener监听器JavaWeb学习笔记-Listener

注解配置

@WebListener
public class ListenerDemo1 implements ServletContextListener {}