掘金日新计划 · 8 月更文挑战第40天--Listener监听器(一)

131 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第40天,点击查看活动详情

监听器定义:监听器实际上是一个类,这个类实现了特定的接口,然后将这个类在 web.xml 文件中进行描述,这样服务器在启动的时候就可以实例化这个类,启动监听器。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。
web监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext,HttpSession,ServletRequest等域对象的创建、销毁、以及属性的变化等,可以在事件发生前、发生后进行一些处理

1.创建web工程

工程基本结构如下: image.png

2.创建servelet包并且新增FirstListenner类文件

image.png

3.实现ServletContextListener并且重写两个方法

image.png

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>

image.png 代码说明:

  • <listener-class:我们要监听的类文件

5.重启应用

image.png 我们来看一下控制台输出的内容:servelet初始化

image.png

如何监听上下文销毁呢 image.png 控制台输出 image.png

6.补充知识点,声明监听器,我们可以不需要在web.xml进行声明

ps:我们可以在类文件头部新增注解@WebListener即可 image.png