什么是监听器
Listener表示监听器,是Java web三大组件之一(Servlet、Filter、Listener)。
监听器就是监听application、session、request这三个对象创建、销毁或者往其中修改删除属性时自动执行代码的功能组件。
监听器分类
监听器分三类
- 监听三个域对象的创建和销毁事件的监听器
- 监听域对象中属性的增加、删除、替换事件的监听器
- 监听绑定到HttpSession域中的某个对象的状态的监听器,又称为感知型监听器
JavaWeb提供了八个监听器
| 监听器分类 | 监听器名称 | 作用 |
|---|---|---|
| ServletContext监听 | ServletContextListener | 对于ServletContext对象监听(创建、销毁) |
| ServletContextAttributeListener | 对于ServletContext对象中属性的监听(增删改) | |
| Session监听 | HttpSessionListener | 对Session对象的整体状态的监听(创建、销毁) |
| HttpSessionAttributeListener | 对Session对象中的属性监听(增删改) | |
| HttpSessionBindingListener | 监听对象Session的绑定和解除 | |
| HttpSessionActivationListener | 对Session数据的钝化和活化的监听 | |
| Request监听 | ServletRequestListener | 对Request对象进行监听(创建、销毁) |
| ServletRequestAttributeListener | 对Request对象中属性的监听(增删改) |
ServletContextListener接口中有以下两个方法
- void contextInitialized(ServletContextEvent sce) : ServletContext 对象被创建了会自动执行的方法
- void contextDestroyed(ServletContextEvent sce) : ServletContext 对象被销毁了会自动执行的方法
ServletContextListener监听器代码演示
- 定义一个类,史翔ServletContextListener接口
- 重写所有的抽象方法
- 使用@webListener进行配置
代码演示
package com.Listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
* Application Lifecycle Listener implementation class Listener
*
*/
@WebListener
public class Listener implements ServletContextListener{
/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("contextInitialized->加载资源...");
}
/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("contextDestroyed->释放资源......");
}
}
注意,新建一个Maven项目然后在Java Resources-src/main/java中右键New-Listener创建一个Listener文件。
然后在控制台就能看到contextInitialized->加载资源...