java session统计在线人数
2017-08-28 11:53
260 查看
首先创建监听器,监听器实现ServletContextAttributeListener, HttpSessionAttributeListener两个接口。
在web.xml中添加监听器
在绑定session或清除session时会触发以上方法
public class LoginUserListener implements ServletContextAttributeListener, HttpSessionAttributeListener { public void attributeAdded(ServletContextAttributeEvent event) { } public void attributeRemoved(ServletContextAttributeEvent event) { } public void attributeReplaced(ServletContextAttributeEvent event) { } /** * session创建后触发该方法,将session信息添加到集合中 */ public void attributeAdded(HttpSessionBindingEvent event) { if (event.getName().equals(IConstant.SESSION_TUSER)) { //获取session信息 HttpSession session = event.getSession(); if(session!=null){ //获得用户信息 TUser user=(TUser)event.getValue(); //获得application信息 ServletContext application = session.getServletContext(); //从application中获得session列表 HashSet<TUser> hashSet=(HashSet<TUser>)application.getAttribute(IConstant.APPLICATION_SESSION); //判断列表数据是否为空 如果为空 需要实例化sessionlist if(hashSet==null){ hashSet=new HashSet<TUser>(); } //判断用户的session是否已经存在,如果已经存在则不在添加 hashSet.remove(user);//先删除,避免重复添加 //将新增用户添加到list中 hashSet.add(user); application.setAttribute(IConstant.APPLICATION_SESSION, hashSet); } } } /** * session被清除里触发,一般用户用户退出时 */ public void attributeRemoved(HttpSessionBindingEvent event) { if (event.getName().equals(IConstant.SESSION_TUSER)) { //获取session信息 HttpSession session = event.getSession(); //获得用户信息 TUser user=(TUser)event.getValue(); ServletContext application = session.getServletContext(); //从application中获得session列表 HashSet<TUser> hashSet=(HashSet<TUser>)application.getAttribute(IConstant.APPLICATION_SESSION); if(hashSet!=null){ hashSet.remove(user); //将剩余的放置在application中 application.setAttribute(IConstant.APPLICATION_SESSION, hashSet); } } } /** * session被替换时触发 */ public void attributeReplaced(HttpSessionBindingEvent event) { System.out.println("attributeReplaced"); } }
在web.xml中添加监听器
<listener> <listener-class>com.jz.sys.listener.LoginUserListener</listener-class> </listener>
在绑定session或清除session时会触发以上方法
相关文章推荐
- java实现在线人数统计 (2011-05-30 15:10)
- 利用HttpSessionListener实现网站在线人数统计功能(转自http://www.web521.com/web/558068/T645231.shtml)
- 在线人数的统计方法。
- java 统计在线人数
- 如何用 php 精确统计在线人数
- Asp.Net MVC3.0网站统计登录认证的在线人数
- dnn 统计在线人数
- asp论坛在线人数统计研究
- Asp.net实现在线人数统计功能代码实例
- Java监听器学习 统计当前在线人数
- 统计在线人数
- 对jsp的一个小结(8)使用servlet控制新闻管理、使用过滤器(解决乱码)和监听器(统计在线用户人数)
- 利用HttpSessionListener实现网站在线人数统计功能
- Asp.Net 在线(登录)人数统计
- 基于数据库的在线人数,日访问量等统计
- ASP.NET MVC使用SignalR统计在线用户人数
- 监听器实现案例----自定义session扫描器和统计在线用户人数及用户信息
- JavaWeb中的Session、SessionListener、在线人数统计
- 如何实现 网站在线人数以及历史访问人数的统计