什么是监听器
其实很简单就是一个机制,简单来说就是:比如你监听了一个按钮,那个当这个按钮被点击或者鼠标滑过的时候,就会被监听到,你可以对此进行响应的操作。
Listener作为JavaEE的规范,其实就是一个接口。他的作用是:监听某个事物的变化,然后通过回调函数,反馈给客户(程序)去做一些响应的处理。
接下来我们要讲的ServletContextListener主要监听的是Servlet的创建和销毁,貌似也只能监听他的创建和销毁。
ServletContextListener监听器的使用
其实很简单,分为三个步骤:
1、编写一个类实现ServletContextListener接口
2、实现接口的回调函数(一个在Servlet创建时调用,一个在Servlet销毁时调用)
3、到web.xml中配置
来个实例:
先写一个MyListener.java类,代码如下:
package com.hstc.edu.servlet;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("Servlet被创建");
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("Servlet被销毁");
}
}
然后在web.xml下面注册即可(写在web-app标签中):
<listener>
<listener-class>com.hstc.edu.servlet.MyListener</listener-class>
</listener>
然后我们重启我们的Tomcat,可以看到我们的命令行如下:(这里好像是因为左边有两个所以会有两个Servlet被创建)
当我们停止Tomcat服务器的时候,显示如下:
当然了,为了验证我刚才说的左边有两个servlet被开启的问题,我也给出实验案例,销毁掉其中一个,如下(现在就只有一个了),说实话,我也不知道我为什么配了两个就是了: