一、什么是监听器
监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监听的对象发生情况时,立即采取相应行动。
某些Servlet 事件监听器需要在 web 应用程序的 web.xml 文件中进行注册,一个 web.xml 文件中可以注册多个 Servlet 事件监听器,web 服务器按照它们在 web.xml 文件中的注册顺序来加载和注册这些 Serlvet 事件监听器。
二、监听ServletContext对象的创建和销毁需要使用 ServletContextListener 接口
public class MyServletContextListener implements ServletContextListener{
//ServletContext对象被创建
@Override
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("ServletContext创建...");
}
//ServletContext对象被销毁
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("ServletContext销毁...");
}
}
<listener>
<listener-class>com.szy.listener.MyServletContextListener</listener-class>
</listener>
三、监听 HttpSession 对象的创建和销毁需要使用 HttpSessionListener 接口
public class MyHttpSessionListener implements HttpSessionListener{
@Override
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("session创建...");
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("session销毁...");
}
}
<listener>
<listener-class>com.szy.listener.MyHttpSessionListener</listener-class>
</listener>
四、监听ServletRequest对象的创建和销毁需要使用 ServletRequestListener 接口
public class MyServletRequestListener implements ServletRequestListener{
@Override
public void requestInitialized(ServletRequestEvent arg0) {
System.out.println("请求被创建...");
}
@Override
public void requestDestroyed(ServletRequestEvent arg0) {
System.out.println("请求被销毁...");
}
}
<listener>
<listener-class>com.szy.listener.MyServletRequestListener</listener-class>
</listener>