携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第40天,点击查看活动详情
监听器定义:监听器实际上是一个类,这个类实现了特定的接口,然后将这个类在 web.xml 文件中进行描述,这样服务器在启动的时候就可以实例化这个类,启动监听器。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。
web监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext,HttpSession,ServletRequest等域对象的创建、销毁、以及属性的变化等,可以在事件发生前、发生后进行一些处理
1.创建web工程
工程基本结构如下:
2.创建servelet包并且新增FirstListenner类文件
3.实现ServletContextListener并且重写两个方法
package com.example.firstlistenner.servelet;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
//@WebListener
public class FirstListenner implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Servelet初始化");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("Servelet销毁");
}
}
代码说明:
contextInitialized:上下文被初始化的时候监听事件
contextDestroyed:上下文被销毁的时候监听事件
4.配置web.xml文件
<listener>
<listener-class>com.example.firstlistenner.servelet.FirstListenner</listener-class>
</listener>
代码说明:
- <listener-class:我们要监听的类文件
5.重启应用
我们来看一下控制台输出的内容:servelet初始化
如何监听上下文销毁呢
控制台输出
6.补充知识点,声明监听器,我们可以不需要在web.xml进行声明
ps:我们可以在类文件头部新增注解@WebListener即可