监听器——监听着我们WEB项目中的域对象

打印 上一主题 下一主题

主题 563|帖子 563|积分 1689

监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁
ServlertContextListener——它监听ServletContext对象的创建和销毁
contextInitialized 创建的时候会调用 Tomcat启动时调用
contextDestroyed销毁的时候主动会调用的方法 Tomcat终止
这两个方法中携带的参数ServletContextEvent可以获取当前ServletContext对象
留意:每个监听器都需要在web.xml中配置标签
  1.   <listener>
  2.         <listener-class>com.iweb.test.HelloListener</listener-class>
  3.     </listener>
复制代码
  1. package com.iweb.test;
  2. import javax.servlet.Servlet;
  3. import javax.servlet.ServletContext;
  4. import javax.servlet.ServletContextEvent;
  5. import javax.servlet.ServletContextListener;
  6. public class HelloListener implements ServletContextListener {
  7.     //初始化
  8.     @Override
  9.     public void contextInitialized(ServletContextEvent sce) {
  10.         ServletContext sc=sce.getServletContext();
  11.         sc.setAttribute("myAplicationKey","myAplicationValue");
  12.         System.out.println("当前ServletContext对象创建");
  13.     }
  14. //销毁
  15.     @Override
  16.     public void contextDestroyed(ServletContextEvent sce) {
  17.         ServletContext sc= sce.getServletContext();
  18.         System.out.println(sc.getAttribute("myAplicationKey"));
  19.         System.out.println("当前ServletContext对象被销毁");
  20.     }
  21. }
复制代码
执行效果:

关浏览器会话只是不能用了,不是被销毁了
2.HttpSessionListener——这是HttpSession的监听器,监听着一个会话什么时候被创建,什么时候被销毁
sessionCreated()————创建的方法
sessionDestroyed()————销毁的方法
HttpSessionListener 是 Java EE 的一个接口,用于监听 HTTP 会话的创建和销毁事件。它允许你在会话的生命周期内执行特定的操作,好比初始化或清算资源。
主要方法
sessionCreated(HttpSessionEvent se):
当一个新的 HTTP 会话被创建时调用。你可以在这里举行初始化操作,如设置默认属性。
  1. @Override
  2. public void sessionCreated(HttpSessionEvent se) {
  3.     System.out.println("Session created: " + se.getSession().getId());
  4. }
  5. sessionDestroyed(HttpSessionEvent se):
复制代码

当一个 HTTP 会话被销毁时调用。你可以在这里执行清算操作,如开释资源。
  1. @Override
  2. public void sessionDestroyed(HttpSessionEvent se) {
  3.     System.out.println("Session destroyed: " + se.getSession().getId());
  4. }
复制代码

配置
要利用 HttpSessionListener,你需要在 web.xml 文件中配置它:
  1. <listener>
  2.     <listener-class>com.example.SessionListener</listener-class>
  3. </listener>
复制代码

在这个例子中,SessionListener 是实现了 HttpSessionListener 接口的类。
3、ServletRequestListener——这是ServletRequest的监听器,监听着一个哀求什么时候被创建,什么时候被销毁
requestInitialized()——创建的方法
requestDestroyed()——销毁的方法
ServletRequestListener 是 Java Servlet API 提供的一个接口,用于监听和处理 Servlet 哀求的创建和销毁事件。它允许你在哀求生命周期内执行特定操作,好比记录哀求信息或举行资源管理。
主要方法
requestInitialized(ServletRequestEvent sre):
当一个 ServletRequest 对象被创建并准备利益理哀求时调用。你可以在这里举行哀求的初始化操作,如记录哀求的开始时间。
  1. @Override
  2. public void requestInitialized(ServletRequestEvent sre) {
  3.     ServletRequest request = sre.getServletRequest();
  4.     System.out.println("Request initialized: " + request.getRemoteAddr());
  5. }
复制代码

requestDestroyed(ServletRequestEvent sre):
当哀求处理完成并且 ServletRequest 对象被销毁时调用。你可以在这里执行清算操作,如记录哀求的结束时间或开释资源。
  1. @Override
  2. public void requestDestroyed(ServletRequestEvent sre) {
  3.     System.out.println("Request destroyed: " + sre.getServletRequest().getRemoteAddr());
  4. }
复制代码

配置
要利用 ServletRequestListener,你需要在 web.xml 文件中举行配置:
xml
  1. <listener>
  2.     <listener-class>com.example.RequestListener</listener-class>
  3. </listener>
复制代码

在这个例子中,RequestListener 是实现了 ServletRequestListener 接口的类。
利用示例
假设你有一个实现了 ServletRequestListener 接口的类:java
  1. package com.example;
  2. import javax.servlet.ServletRequestEvent;
  3. import javax.servlet.ServletRequestListener;
  4. import javax.servlet.annotation.WebListener;
  5. @WebListener
  6. public class RequestListener implements ServletRequestListener {
  7.     @Override
  8.     public void requestInitialized(ServletRequestEvent sre) {
  9.         System.out.println("Request initialized: " + sre.getServletRequest().getRemoteAddr());
  10.     }
  11.     @Override
  12.     public void requestDestroyed(ServletRequestEvent sre) {
  13.         System.out.println("Request destroyed: " + sre.getServletRequest().getRemoteAddr());
  14.     }
  15. }
复制代码

在这个例子中,利用了 @WebListener 注解来声明监听器,并且实现了 requestInitialized 和 requestDestroyed 方法以处理哀求的生命周期事件。

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表