监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁
ServlertContextListener——它监听ServletContext对象的创建和销毁
contextInitialized 创建的时候会调用 Tomcat启动时调用
contextDestroyed销毁的时候主动会调用的方法 Tomcat终止
这两个方法中携带的参数ServletContextEvent可以获取当前ServletContext对象
留意:每个监听器都需要在web.xml中配置标签
- <listener>
- <listener-class>com.iweb.test.HelloListener</listener-class>
- </listener>
复制代码- package com.iweb.test;
- import javax.servlet.Servlet;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- public class HelloListener implements ServletContextListener {
- //初始化
- @Override
- public void contextInitialized(ServletContextEvent sce) {
- ServletContext sc=sce.getServletContext();
- sc.setAttribute("myAplicationKey","myAplicationValue");
- System.out.println("当前ServletContext对象创建");
- }
- //销毁
- @Override
- public void contextDestroyed(ServletContextEvent sce) {
- ServletContext sc= sce.getServletContext();
- System.out.println(sc.getAttribute("myAplicationKey"));
- System.out.println("当前ServletContext对象被销毁");
- }
- }
复制代码 执行效果:
关浏览器会话只是不能用了,不是被销毁了
2.HttpSessionListener——这是HttpSession的监听器,监听着一个会话什么时候被创建,什么时候被销毁
sessionCreated()————创建的方法
sessionDestroyed()————销毁的方法
HttpSessionListener 是 Java EE 的一个接口,用于监听 HTTP 会话的创建和销毁事件。它允许你在会话的生命周期内执行特定的操作,好比初始化或清算资源。
主要方法
sessionCreated(HttpSessionEvent se):
当一个新的 HTTP 会话被创建时调用。你可以在这里举行初始化操作,如设置默认属性。
- @Override
- public void sessionCreated(HttpSessionEvent se) {
- System.out.println("Session created: " + se.getSession().getId());
- }
- sessionDestroyed(HttpSessionEvent se):
复制代码
当一个 HTTP 会话被销毁时调用。你可以在这里执行清算操作,如开释资源。
- @Override
- public void sessionDestroyed(HttpSessionEvent se) {
- System.out.println("Session destroyed: " + se.getSession().getId());
- }
复制代码
配置
要利用 HttpSessionListener,你需要在 web.xml 文件中配置它:
- <listener>
- <listener-class>com.example.SessionListener</listener-class>
- </listener>
复制代码
在这个例子中,SessionListener 是实现了 HttpSessionListener 接口的类。
3、ServletRequestListener——这是ServletRequest的监听器,监听着一个哀求什么时候被创建,什么时候被销毁
requestInitialized()——创建的方法
requestDestroyed()——销毁的方法
ServletRequestListener 是 Java Servlet API 提供的一个接口,用于监听和处理 Servlet 哀求的创建和销毁事件。它允许你在哀求生命周期内执行特定操作,好比记录哀求信息或举行资源管理。
主要方法
requestInitialized(ServletRequestEvent sre):
当一个 ServletRequest 对象被创建并准备利益理哀求时调用。你可以在这里举行哀求的初始化操作,如记录哀求的开始时间。
- @Override
- public void requestInitialized(ServletRequestEvent sre) {
- ServletRequest request = sre.getServletRequest();
- System.out.println("Request initialized: " + request.getRemoteAddr());
- }
复制代码
requestDestroyed(ServletRequestEvent sre):
当哀求处理完成并且 ServletRequest 对象被销毁时调用。你可以在这里执行清算操作,如记录哀求的结束时间或开释资源。
- @Override
- public void requestDestroyed(ServletRequestEvent sre) {
- System.out.println("Request destroyed: " + sre.getServletRequest().getRemoteAddr());
- }
复制代码
配置
要利用 ServletRequestListener,你需要在 web.xml 文件中举行配置:
xml
- <listener>
- <listener-class>com.example.RequestListener</listener-class>
- </listener>
复制代码
在这个例子中,RequestListener 是实现了 ServletRequestListener 接口的类。
利用示例
假设你有一个实现了 ServletRequestListener 接口的类:java
- package com.example;
- import javax.servlet.ServletRequestEvent;
- import javax.servlet.ServletRequestListener;
- import javax.servlet.annotation.WebListener;
- @WebListener
- public class RequestListener implements ServletRequestListener {
- @Override
- public void requestInitialized(ServletRequestEvent sre) {
- System.out.println("Request initialized: " + sre.getServletRequest().getRemoteAddr());
- }
- @Override
- public void requestDestroyed(ServletRequestEvent sre) {
- System.out.println("Request destroyed: " + sre.getServletRequest().getRemoteAddr());
- }
- }
复制代码
在这个例子中,利用了 @WebListener 注解来声明监听器,并且实现了 requestInitialized 和 requestDestroyed 方法以处理哀求的生命周期事件。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |