通过HttpSessionListener 实现 在线用户 .

简介: 要查看 在线 人数..   使用 application 进行 用户UserId 进行存储.   1.需要自己实现 一个 SessionListener.   根据自己需要配置. <session-config> <session-timeout>3</session-timeout> </session-config>

要查看 在线 人数..

 

使用 application 进行 用户UserId 进行存储.

 

1.需要自己实现 一个 SessionListener.

 

根据自己需要配置.

<session-config>
		<session-timeout>3</session-timeout>
	</session-config>
 

 

public interface HttpSessionListener
    extends EventListener
{

    public abstract void sessionCreated(HttpSessionEvent httpsessionevent);

    public abstract void sessionDestroyed(HttpSessionEvent httpsessionevent);
}

 

当session失效 的时候 .将 application 里面的值 清除.

 

SessionSync implements HttpSessionListener
{

public void sessionDestroyed(HttpSessionEvent sessionEvent) {
		//利用会话ID标示特定会话
		System.out.println("Destroy a session:"
				+ sessionEvent.getSession().getId());
		ServletContext application = sessionEvent.getSession()
				.getServletContext();
		application.removeAttribute("sessionId_"+sessionEvent.getSession().getId());
}
......
}

 格式是 "sessionId_" + session id

 

同样的代码也要添加到 注销的里面.

 

注销的时候页面清除 application 里面的存储.

application.removeAttribute("sessionId_"+request.getSession().getId());

 

2.登录的时候.

 

登录成功添加 application 里面的存储.

 

//登录成功.将sessionId和工号放到application里面.
			application.setAttribute("sessionId_"+request.getSession().getId(),yourUserId);
			response.sendRedirect("main.jsp");// 

 

3.查看在线列表.

直接访问 application 里面的值. 因为前面添加了 sessionId 这样可以把其他 application 值过滤.

 

查看时候调用..

try {
		Enumeration names = application.getAttributeNames();
		while (names.hasMoreElements()) {
			String name = (String) names.nextElement();
			//判断.必须有一个前缀.sessionId_.以区分其他application变量.
			if (null != name && name.indexOf("sessionId_") == 0) {
				out.println("id:" + name + " == "
						+ application.getAttribute(name));
			}
		}
	} catch (Exception e) {
	}

 就可以看到在线列表了.

 

本地测试和想的是一样的.

 

目录
相关文章
|
4月前
|
小程序 数据挖掘
产品信息二维码系统:扫码查看产品介绍,随时更新产品信息
为了方便客户更好的了解产品,提升产品宣传效率,可以搭建产品信息二维码系统。为每一类产品生成一个二维码,上传文字、图片、音视频等内容,将二维码印刷在产品外包装、画册、样品卡或说明书上,用户使用微信扫码就能查看图文并茂的产品介绍、操作教程,获取售后服务。
|
10月前
有趣的在线小工具汇总
有趣的在线小工具汇总
57 0
|
10月前
|
消息中间件 监控 NoSQL
一个支持消息推送,文件管理,在线用户监控的后台权限管理系统来了
一个支持消息推送,文件管理,在线用户监控的后台权限管理系统来了
91 0
|
网络协议 测试技术 Go
海量用户通讯系统-显示在线用户列表(2)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(2)
58 0
|
机器学习/深度学习 JSON 网络协议
海量用户通讯系统-显示在线用户列表(3)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(3)
98 0
|
JSON 网络协议 测试技术
海量用户通讯系统-显示在线用户列表(6)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(6)
88 0
|
机器学习/深度学习 JSON 前端开发
海量用户通讯系统-显示在线用户列表(4)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(4)
78 0
|
机器学习/深度学习 JSON 网络协议
海量用户通讯系统-显示在线用户列表(7)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(7)
92 0
|
网络协议 测试技术 Go
海量用户通讯系统-显示在线用户列表(1)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(1)
143 0
海量用户通讯系统-显示在线用户列表(1)|学习笔记
|
网络协议 测试技术 Go
海量用户通讯系统-显示在线用户列表(5)|学习笔记
快速学习海量用户通讯系统-显示在线用户列表(5)
73 0