Spring boot通过HttpSessionListener监听器统计在线人数的实现代码

 更新时间:2018年02月07日 11:24:02   作者:ZhangJQKb  
这篇文章主要介绍了Spring boot通过HttpSessionListener监听器统计在线人数的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下

首先说下,这个统计在线人数有个缺陷,一个人在线可以同时拥有多个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监听器统计在线人数的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • IDEA中设置代码自动提示为Alt+/的具体做法

    IDEA中设置代码自动提示为Alt+/的具体做法

    很多公司都强制性要求使用Intellij IDEA,其实Intellij IDEA也确实很好用,但是一下子从Eclipse跳转到Intellij IDEA转也是需要一段时间的,为了迎合之前的习惯,就需要在Intellij IDEA中改变一些设置,如代码自动生成,本文给大家分享设置方法,感兴趣的朋友一起看看吧
    2023-01-01
  • SpringMVC框架post提交数据库出现乱码解决方案

    SpringMVC框架post提交数据库出现乱码解决方案

    这篇文章主要介绍了SpringMVC框架post提交数据库出现乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • NetBeans安装提示neatbeans cannot find java 1.8 or higher

    NetBeans安装提示neatbeans cannot find java 1.8 or higher

    今天小编就为大家分享一篇关于NetBeans安装提示neatbeans cannot find java 1.8 or higher,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Java中List删除元素的几种方法总结推荐

    Java中List删除元素的几种方法总结推荐

    这篇文章主要给大家介绍了关于Java中List删除元素的几种方法总结,相信大家在日常的开发过程中,经常需要对List或Map里面的符合某种业务的数据进行删除,需要的朋友可以参考下
    2023-10-10
  • Messges Queue消息队列详解

    Messges Queue消息队列详解

    这篇文章主要介绍了Messges Queue消息队列详解,消息队列一般简称为 MQ,是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器,需要的朋友可以参考下
    2023-07-07
  • 静态方法中调用Spring注入过程解析

    静态方法中调用Spring注入过程解析

    这篇文章主要介绍了静态方法中调用Spring注入过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • MyBatis是如何实现日志模块的详解

    MyBatis是如何实现日志模块的详解

    这篇文章主要给大家介绍了关于MyBatis是如何实现日志模块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用MyBatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • Java如何生成压缩文件工具类

    Java如何生成压缩文件工具类

    这篇文章主要介绍了Java如何生成压缩文件工具类问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • SpringBoot整合resilience4j实现接口限流

    SpringBoot整合resilience4j实现接口限流

    最近在开发项目的时候,需要用到限流的功能,本文主要介绍了SpringBoot整合resilience4j实现接口限流,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Java实现常见排序算法的优化

    Java实现常见排序算法的优化

    今天给大家带来的是关于Java的相关知识,文章围绕着Java实现常见排序算法的优化展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-01-01

最新评论