什么是监听器?
好比是一个监控,有一个保险柜,小偷来偷东西,只要一开保险柜的门就会报警
-
监听器:
应用启动监听器:监听应用是否启动,一启动就会触发一次
会话监听器:比如一个用户打开浏览器,调用接口,也会触发对应的监听
请求监听器:用户发一次请求就触发对应的监听
-
作用
- ServletContextListener 应用启动监听:数据初始化等
- HttpSessionLisener 会话监听:监听当前所在人数
- ServletRequestListener 请求监听:想监听每一请求
-
常用的监听器 ServletContextListener、HttpSessionListener、ServletRequestListener)
/**
* 请求监听器
*/
@WebListener//标记被spring扫描
public class RequestListener implements ServletRequestListener {
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("======contextDestroyed========");
}
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("======contextInitialized========");
}
}
/**
* 应用上下文监听器
*/
@WebListener
public class ApplicationListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
//启动时打印
System.out.println("======contextDestroyed========");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
//销毁
System.out.println("======contextInitialized========");
}
}
/**
* 会话监听器
*/
@WebListener
public class CustomSessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("======SessionInitialized========");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("======SessionDestroyed========");
}
}