Listener监听域对象的生命周期

释放双眼,带上耳机,听听看~!

概述

通过监听器对象,来监听域对象的创建和销毁

监听器对象——先于三个域对象之前创建的,优先于servletContext对象创建之前创建

域对象

  • ServletContext域对象:在服务器启动时创建,在服务器关闭时销毁。
  • session对象:一次会话对应一个session对象,在会话开始时session对象被创建。销毁session对象的三种方式:

    • 超过了默认过期时间,session对象被销毁
    • 默认过期时间,可以通过修改tomcat服务器conf目录下的web.x服务器关闭,session对象被销毁
    • 调用invalidate方法销毁session对象
  • request域对象:每次发送请求,都会创建request对象,请求结束request对象会被销毁

测试过程

监听器

package p01_listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class MyListener implements ServletContextListener, HttpSessionListener, ServletRequestListener {

    public MyListener() {
        System.out.println("监听对象被创建");
    }

    public void sessionCreated(HttpSessionEvent arg0)  { 
        System.out.println("session对象被创建");
    }

    public void requestDestroyed(ServletRequestEvent arg0)  { 
        System.out.println("request对象被销毁");
    }

    public void requestInitialized(ServletRequestEvent arg0)  { 
        System.out.println("request对象被创建");
    }

    public void sessionDestroyed(HttpSessionEvent arg0)  { 
        System.out.println("session被销毁");
    }
    public void contextDestroyed(ServletContextEvent arg0)  { 
        System.out.println("contextevent被销毁");
    }

    public void contextInitialized(ServletContextEvent arg0)  { 
        System.out.println("context对象被创建");
    }

}

访问测试页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    测试页面被打开
    <a href="session_out.jsp">销毁session</a>
</body>
</html>

session销毁页面

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <%session.invalidate(); %>
</body>
</html>

给TA买糖
共{{data.count}}人
人已赞赏
知识分享

PreparedStatement对象

2020-9-14 21:52:00

知识分享

Filter修改全站请求响应编码

2020-9-15 21:56:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索