一、什么是监听器
servlet监听器是一种特殊的接口,用于监听特定的事件(如请求创建和销毁、会话创建和销毁、上下文的初始化和销毁)。
当Web应用程序中反生特定事件时,Servlet容器就会自动调用监听器中相应的方法来处理这些事件。
二、监听器的作用?
1、全局初始化和清理
通过实现ServletContextListener
接口,开发者可以在Web应用程序启动时执行全局初始化操作(例如加载配置文件、初始化数据库连接池等),并在应用程序关闭时执行清理操作(例如关闭数据库连接池、释放资源等)。
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
// 应用程序初始化时执行的代码
System.out.println("Application is starting...");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// 应用程序销毁时执行的代码
System.out.println("Application is shutting down...");
}
}
2、会话管理
通过实现HttpSessionListener
接口,开发者可以监控用户会话的创建和销毁。这可以用于统计当前在线用户数量、清理过期会话等。
public class MyHttpSessionListener implements HttpSessionListener {
private int activeSessions = 0;
@Override
public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
System.out.println("Session created. Total active sessions: " + activeSessions);
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
activeSessions--;
System.out.println("Session destroyed. Total active sessions: " + activeSessions);
}
}