实现一个监听器接口:有N种
1:编写一个监听器
1 // 统计网站在线人数:统计session
2 public class OnlineCountListener implements HttpSessionListener {
3
4 // 创建session的监听:看你的一举一动
5 // 一旦创建一个session就会触发一次这个事件
6 @Override
7 public void sessionCreated(HttpSessionEvent se) {
8 ServletContext ctx = se.getSession().getServletContext();
9 System.out.println(se.getSession().getId());
10 Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");
11 if (onlineCount == null) {
12 onlineCount = new Integer(1);
13 } else {
14 int count = onlineCount.intValue();
15 onlineCount = new Integer(count + 1);
16 }
17 ctx.setAttribute("OnlineCount",onlineCount);
18
19 }
20 // 销毁session的监听
21 // 一旦销毁一个session就会触发一次这个事件
22 @Override
23 public void sessionDestroyed(HttpSessionEvent se) {
24 ServletContext ctx = se.getSession().getServletContext();
25 Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");
26 if (onlineCount == null) {
27 onlineCount = new Integer(0);
28 } else {
29 int count = onlineCount.intValue();
30 onlineCount = new Integer(count - 1);
31 }
32 ctx.setAttribute("OnlineCount",onlineCount);
33
34 }
35
36
37 /*
38 * session销毁:
39 * 1)手动销毁
40 * 2)自动销毁,去web.xml去配置session过期时间
41 *
42 *
43 * */
44
45
46
47
2:web.xml中注册监听器
1 <!-- 注册监听器,用的越来越少-->
2 <listener>
3 <listener-class>com.mine.listener.OnlineCountListener</listener-class>
4
3:看情况是否使用(几乎不用)
标签:ctx,session,监听器,Integer,onlineCount,se From: https://blog.51cto.com/u_15810109/5718738