listener

简介

  • 监听ServletContext、HttpSession、ServletRequest等域对象创建和销毁事件
  • 监听域对象的属性发生修改的事件
  • 监听在事件发生前、发生后做一些必要的处理
  1. 创建监听器
  2. 监听器内置方法
  3. 监听器触发流程

创建一个监控session 的监听器

创建servlet

这个servlet 的作用是创建session 和销毁session

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example.listenerdemo.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet(name = "createSession", value = "/cs")
public class CreateSession extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 创建session
System.out.println("创建session");
req.getSession();
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example.listenerdemo.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet(name = "destroySession", value = "/ds")
public class DestroySession extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("销毁session");
req.getSession().invalidate();
}
}

创建listener

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.example.listenerdemo.listener;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(javax.servlet.http.HttpSessionEvent httpSessionEvent) {
System.out.println("listener: Session Created");
}

@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("listener: Session Destroyed");
}
}

效果

image-20250502173217901


listener
https://tsy244.github.io/2025/05/02/javaee/listener/
Author
August Rosenberg
Posted on
May 2, 2025
Licensed under