首先说下,这个统计在线人数有个缺陷,一个人在线可以同时拥有多个session,导致统计有一定的不准确行。
接下来,开始代码的编写,
第一步:实现httpsessionlistener中的方法,加上注解@weblistener
@weblistener public class sessionlistener implements httpsessionlistener{ public void sessioncreated(httpsessionevent arg0) { // todo auto-generated method stub servletcontext context = arg0.getsession().getservletcontext(); if (context.getattribute("count")==null) { context.setattribute("count", 0); }else { int count = (integer) context.getattribute("count"); context.setattribute("count", count+1); } } public void sessiondestroyed(httpsessionevent arg0) { // todo auto-generated method stub servletcontext context = arg0.getsession().getservletcontext(); if (context.getattribute("count")==null) { context.setattribute("count", 0); }else { int count = (integer) context.getattribute("count"); if (count<1) { count = 1; } context.setattribute("count", count-1); } httpsession session = arg0.getsession(); string name = (string) session.getattribute("name"); hashset<string> nameset = (hashset<string>) context.getattribute("nameset"); nameset.remove(name); } }
第二步:控制创建session放入对象
httpsession session = request.getsession(); session.setattribute("name", name); object count = context.getattribute("count"); if (count==null) { count = 0; }
第三步:启动类加上注解@servletcomponentscan,这样才能扫描到监听器
说明,此代码适用于spring-boot开发
简单说下,javaweb中配置监听器在web.xml中加上
<listener> <listener-class>zjq.listener.sessionlistener</listener-class> </listener>
总结
以上所述是小编给大家介绍的spring boot通过httpsessionlistener监听器统计在线人数的实现代码,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
android sdk源码 andoid-21 下的TextUtils.java文本工具类 源码赏析
地理坐标(WGS84),投影坐标下(Mercator)切片系统的计算Java类
荐 JavaWeb~简单认识以太网、MAC地址、MTU机制、ARP协议、DNS协议
HUAWEI MH5000-31 LGA Module Hardware Guide draft
网友评论