javaweb:监听器

打印 上一主题 下一主题

主题 851|帖子 851|积分 2553

监听器种类数不胜数,监听器最常被应用在GUI中,不过网站中也可以设置监听器,这里我们利用sessionListener实现一个网站在线人数统计的监听来了解一下监听器的使用。
首先建立一个类来实现监听器OnlineListener.class
  1. 1 package com.jms.listener;
  2. 2
  3. 3 import javax.servlet.ServletContext;
  4. 4 import javax.servlet.http.HttpSessionEvent;
  5. 5 import javax.servlet.http.HttpSessionListener;
  6. 6
  7. 7 public class OnlineListener implements HttpSessionListener{
  8. 8     
  9. 9     //统计网站中在线人数
  10. 10
  11. 11     //创建session时,触发这个监听
  12. 12     @Override
  13. 13     public void sessionCreated(HttpSessionEvent se) {
  14. 14         ServletContext sctContext = se.getSession().getServletContext();
  15. 15         Integer onlinenumber = (Integer) sctContext.getAttribute("OnlineNumber");
  16. 16         if(onlinenumber == null) {
  17. 17             onlinenumber = 1;
  18. 18         } else {
  19. 19             onlinenumber += 1;
  20. 20         }
  21. 21         sctContext.setAttribute("OnlineNumber", onlinenumber);
  22. 22     }
  23. 23
  24. 24     //销毁session时,触发这个监听
  25. 25     @Override
  26. 26     public void sessionDestroyed(HttpSessionEvent se) {
  27. 27         ServletContext sctContext = se.getSession().getServletContext();
  28. 28         Integer onlinenumber = (Integer) sctContext.getAttribute("OnlineNumber");
  29. 29         if(onlinenumber > 0) {
  30. 30             onlinenumber -= 1;
  31. 31         }
  32. 32         sctContext.setAttribute("OnlineNumber", onlinenumber);
  33. 33     }
  34. 34     
  35. 35     
  36. 36 }
复制代码
编辑我们的index.jsp
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2.     pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>在线人数</title>
  8. </head>
  9. <body>
  10. <% response.setHeader("Refresh", "3"); %>
  11. <h1><span >当前在线人数:<%=pageContext.getServletContext().getAttribute("OnlineNumber") %></span></h1>
  12. </body>
  13. </html>
复制代码
修改web.xml
  1.     <listener>
  2.             <listener-class>com.jms.listener.OnlineListener</listener-class>
  3.        </listener>
复制代码
 访问网站,测试一下效果如何
打开一个浏览器

 打开第二个浏览器

 
 
 
设置的session过期时间为1分钟

 
 
 
(本文仅作个人学习记录用,如有纰漏,敬请指正)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表