首页 移动开发 在线交易 IT笔记 网络技术 操作系统 企业架构 数据库 考试认证 IT培训 开源软件 数据存储 行业资讯
大家都在看:java   开发   C#   oracle   mysql   android   web开发   学习   sqlserver   linux   asp   php   ajax   javascript   css   html
java session统计在线人数
2014-11-17 09:49:57 来源: 作者:admin 栏目:Java学习 责任编辑:
[导读] 首先创建监听器,监听器实现ServletContextAttributeListener,HttpSessionAttributeListener两个接口。public class LoginUserListener implements ServletContextAttributeListener,HttpSessionAttributeListener {public void attributeAdded(ServletContextAt..
首先创建监听器,监听器实现ServletContextAttributeListener, HttpSessionAttributeListener两个接口。
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时会触发以上方法
标签:
本站地址:/
版权所有:转载请注明出处!
分享到:
上一篇SQL语句优化技术分析 下一篇学习RMI
您可能还喜欢
暂无...
今日最新资讯 最新推荐信息
考试认证 更多
开发技术 更多
移动开发 更多

关于 | 合作伙伴 | 联系我们 | 友情链接 | 版权声明 | 网站制作 | 网站地图 | 加入收藏 | 设为首页

Copyright@2012-2016 京ICP备12027873号