Servlet 监听器Listner
定义:
专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。
Servlet 规范为每种事件监听器都定义了相应的接口,它用于监听 web 应用程序中的 ServletContext, HttpSession 和 ServletRequest 等域对象的创建与销毁事件。
接口实现类:
编写的事件监听器程序只需实现这些接口
public class HelloServletContextListner implements ServletContextListener, ServletRequestListener, HttpSessionListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("ServletContext 对象被创建。 " + sce.getServletContext()); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("ServletContext 对象被销毁。" + sce.getServletContext()); } @Override public void sessionCreated(HttpSessionEvent se) { System.out.println("HttpSession 被创建。"); } @Override public void sessionDestroyed(HttpSessionEvent se) { // TODO Auto-generated method stub System.out.println("HttpSession 被销毁"); } @Override public void requestDestroyed(ServletRequestEvent sre) { // TODO Auto-generated method stub System.out.println("ServletRequest 被销毁"); } @Override public void requestInitialized(ServletRequestEvent sre) { // TODO Auto-generated method stub System.out.println("ServletRequest 被创建"); } }
声明注册:
Servlet事件监听器需要在 web 应用程序的 web.xml 文件中进行注册
<!-- 配置监听 --> <listener> <listener-class>com.demo.listener.HelloServletContextListner</listener-class> </listener>
应用场景:
1.ServletContextListener 是最常用的 Listener, 可以在当前 WEB 应用被加载时对当前 WEB 应用的相关资源进行初始化操作: 创建 Spring 的 IOC 容器,
2.HttpSessionListener,统计当前在线人数列表