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

监听器 ——它监听着我们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 方法以处理请求的生命周期事件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值