package com.an.tomcatservlet;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
* @author apy
* @description
* @date 2021/10/21 17:29
*/
public class MyListener implements ServletRequestListener
,ServletRequestAttributeListener
,ServletContextListener
,ServletContextAttributeListener
,HttpSessionListener
,HttpSessionBindingListener
,HttpSessionActivationListener
,HttpSessionAttributeListener{
public void requestInitialized(ServletRequestEvent sre) {
ServletRequest servletRequest = sre.getServletRequest();
// do something...
}
public void requestDestroyed(ServletRequestEvent sre) {
}
public void attributeAdded(ServletRequestAttributeEvent srae) {
}
public void attributeRemoved(ServletRequestAttributeEvent srae) {
}
public void attributeReplaced(ServletRequestAttributeEvent srae) {
}
public void contextInitialized(ServletContextEvent sce) {
}
public void contextDestroyed(ServletContextEvent sce) {
}
public void attributeAdded(ServletContextAttributeEvent event) {
}
public void attributeRemoved(ServletContextAttributeEvent event) {
}
public void attributeReplaced(ServletContextAttributeEvent event) {
}
public void sessionCreated(HttpSessionEvent se) {
}
public void sessionDestroyed(HttpSessionEvent se) {
}
public void valueBound(HttpSessionBindingEvent event) {
}
public void valueUnbound(HttpSessionBindingEvent event) {
}
/**
* 【servlet Listener】
* why?
* 解决 共享对象 内容发生变化 时, 在发生前、发生后 做处理;
*
* Servlet2.3 提供了 对 ServletContext、HttpSession对象的变化的 监听器;
* Servlet2.4 增加了 对 ServletRequest对象的变化的 监听器;
*
* what?
* ServletContext监听器:监听 ServletContext对象,可以 使 web应用 得知 web组件的 加载、卸载情况等;
* ServletContextListener
* ServletContextAttributeListener
*
* ServletContextEvent
* ServletContextAttributeEvent
*
* HttpSession监听器:监听 HttpSession对象变化,可以 使 web应用 了解 会话期间的状态 并 做出响应;
* HttpSessionListener
* HttpSessionActivationListener 实现数据 内存->磁盘,磁盘->内存;
*
* HttpSessionEvent
*
*
* HttpSessionAttributeListener
* HttpSessionBindingListener
*
* HttpSessionBindingEvent
*
*
* ServletRequest监听器:监听 ServletRequest对象变化,可以 使 web应用 控制web请求的生命周期;
* ServletRequestListener
* ServletRequestAttributeListener
*
* ServletRequestEvent
* ServletRequestAttributeEvent
*
* How?
* 创建普通Java类,实现 对应的Listener,重写相应的方法;
* 在web.xml中配置相应的 Listener;
*/
}