企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 监听三个对象的创建和销毁 ### ServletContextListener(最重要) 创建: 服务器启动的时候会为每一个项目创建一个. 销毁:服务器正常关闭或者项目移除的时候. web.xml ~~~ <listener> <listener-class>com.like.listener.MyContextListener</listener-class> </listener> ~~~ 下面对应服务器创建和关闭时执行的方法. ~~~ public void contextInitialized(ServletContextEvent sce) { System.out.println("创建"); } public void contextDestroyed(ServletContextEvent sce) { System.out.println("销毁"); } ~~~ ### ServletRequestListener 创建:请求来的时候. 销毁:生成响应的时候. web.xml ~~~ <listener> <listener-class>com.like.listener.MyRequestListener</listener-class> </listener> ~~~ ~~~ public class MyRequestListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent servletRequestEvent) { System.out.println("请求来了"); } @Override public void requestInitialized(ServletRequestEvent servletRequestEvent) { System.out.println("生成响应"); } } ~~~ ### HttpSessionListener 创建 :java中认为 第一次调用request.getSession()的时候.jsp中认为第一次访问jsp页面的时候. 销毁:1.Tomcat默认30分钟销毁.2.当服务器非关闭或项目移除的时候.3.超时. 注意,session的作用范围是一次会话. web.xml ~~~ <listener> <listener-class>com.like.listener.MySessionListener</listener-class> </listener> ~~~ ~~~ public class MySessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { System.out.println("http session生成"); } @Override public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { System.out.println("http session销毁"); } } ~~~