监听器

1.实现一个监听器的接口;(有n种)

实现监听器的接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package cn.bloghut.listener;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
* 统计网站在线人数 :统计session
*/
public class OnlineCountListener implements HttpSessionListener {
/**
* 创建session 监听 : 看你的一举一动
* 一旦创建session就会触发一次这个事件!
*
* @param se
*/
@Override
public void sessionCreated(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
System.out.println(se.getSession().getId());
Integer onLineCount = (Integer) context.getAttribute("onLineCount");

if (onLineCount == null) {
onLineCount = new Integer(1);
} else {
//不为空,在线数量+1
onLineCount++;
}
//更新在线人数
context.setAttribute("onLineCount",onLineCount);

}

/**
* 销毁session 监听
* 一旦session 就会触发一次这个事件!
*
* @param se
*/
@Override
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
Integer onLineCount = (Integer) context.getAttribute("onLineCount");

if (onLineCount == null){
onLineCount = 0;
}else {
onLineCount = onLineCount - 1;
}
context.setAttribute("onLineCount",onLineCount);

}
/**
* session销毁
*
* 1.手动销毁 getSession().invalidate();
* 2.自动销毁
*/

}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061

JAVA

2.在web.xml中配置

1
2
3
4
5
<!--注册监听器-->
<listener>
<listener-class>cn.bloghut.listener.OnlineCountListener</listener-class>
</listener>
1234

监听器
https://lfrok.top/2022/11/27/Java/监听器/
作者
B612🚀
发布于
2022年11月27日
许可协议