SpringBoot基于WebListener实现实时在线人数统计

40 篇文章 4 订阅
订阅专栏
该文章展示了如何在SpringBoot应用中管理session并实时统计在线用户数量。通过引入依赖,配置session超时,创建计数服务,实现session监听器以及设计登录和退出接口,可以动态跟踪和更新在线用户计数。
摘要由CSDN通过智能技术生成

一、引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

二、application.properties文件设置

# 设置1分钟的有效时间
server.servlet.session.timeout=1m

三、计数服务

import org.springframework.stereotype.Service;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author qinxun
 * @date 2023-06-05
 * @Descripion: 计数服务
 */
@Service
public class CountService {

    static AtomicInteger atomicInteger = new AtomicInteger(0);

    /**
     * 新增在线人数
     */
    public void incr(int cnt) {
        atomicInteger.addAndGet(cnt);
    }

    /**
     * 获取当前在线的人数
     */
    public int getOnlineCnt() {
        return atomicInteger.get();
    }
}

四、session监听器

import com.example.quartzdemo.service.CountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * @author qinxun
 * @date 2023-06-05
 * @Descripion: session监听器
 */
@Component
@WebListener
public class LoginUserCountListener implements HttpSessionListener {

    @Autowired
    private CountService countService;

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("新增一个用户");
        HttpSessionListener.super.sessionCreated(se);
        countService.incr(1);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("销毁一个用户");
        HttpSessionListener.super.sessionDestroyed(se);
        countService.incr(-1);
    }
}

五、创建访问层

import com.example.quartzdemo.service.CountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * @author qinxun
 * @date 2023-06-05
 * @Descripion: 测试
 */
@RestController
public class WebController {

    @Autowired
    private CountService countService;

    /**
     * 登录
     */
    @RequestMapping("/login")
    public String login(String username, HttpServletRequest servletRequest) {
        HttpSession session = servletRequest.getSession();
        session.setAttribute("username", username);
        return "欢迎您:" + username + ",当前在线人数:" + countService.getOnlineCnt();
    }


    /**
     * 退出登陆
     */
    @RequestMapping("/logout")
    public String logount(HttpSession httpSession) {
        // 注销当前的session
        httpSession.invalidate();
        return "登出成功, 当前在线人数: " + countService.getOnlineCnt();
    }

}

六、测试

 

 

Spring boot通过HttpSessionListener监听器统计在线人数实现代码
08-28
主要介绍了Spring boot通过HttpSessionListener监听器统计在线人数实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
Springboot 用session监听器统计在线用户数量,netty框架工作原理
m0_54816834的博客
03-30 738
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。3907)][外链图片转存中…(img-KtI8PNH4-1711787573908)][外链图片转存中…(img-ZKHrb4iq-1711787573908)][外链图片转存中…(img-LuwFF8n0-1711787573909)]
Springboot网站用户的访问量统计
05-26
Springboot网站用户的访问量统计,代码加入了线程,根据自己的需求下载,不需要线程的留下邮箱
springboot 用监听器统计在线人数案例分析
08-28
主要介绍了springboot 用监听器统计在线人数案例分析,质是统计session 的数量,思路很简单,具体实例代码大家参考下本
Springboot web项目简单统计在线人数
程序员
07-29 2322
web项目中都是短连接,无法根据连接的开启与断开做判断,只能简单的根据session的创建与销毁来判断在线人数,做不到实时统计。 好了,直接上代码 #1、springboot的启动类加上@ServletComponentScan注解 #2、创建一个监听器 @WebListener public class OnlineSessionListener implements HttpSessionListener { private Logger logger = LoggerFactor.
springboot实现在线用户统计
m0_67266585的博客
04-08 1589
第三步骤:控制编写。 新建UserStatisticsController 类 1、后台模拟登录,返回当前登录人数,方法logUser。 2、后台模拟注销账号,返回当前登录人数,方法logOut。 3、session超时自动销毁,也会调用sessionDestroyed方法 4、具体代码如下所示 import com.example.excelimport.listener.UserStatisticsListener; import org.springframework.web.bind.annotat
spring boot统计在线人数( 完整代码)
从代码的世界路过
03-20 1万+
spring boot统计在线人数
java判断系统在线人数,java监听器之实现在线人数显示
weixin_36277197的博客
03-21 568
在码农的世界里只有bug才能让人成长,The more bugs you encounter, the more efficient you will be!java中的监听器分为三种:ServletRequestListener、HttpSessionListener、ServletContextListener;ServletRequest--请求,在客户端对服务器发生请求(访问)时发生,请求...
Redis不常用操作指南(基于SpringBoot2.3.2代码实现
weixin_64314555的博客
12-20 1123
1 前言 通常程序员在学习Redis的安装到使用是非常快速的,因为Redis的大部分操作都等同于Map的操作逻辑,只要了解大部分api结合百度能够快速的投入到CRUD的工作中去,所以今天来一期Redis不常用操作指南,当然这里的不常用更多是不会天天用,但是在项目中还是会有应用到的地方。 2 安装Redis 安装及原生命令 3 SpringBoot2整合Redis(有现成环境的可以略过) 3.1 相关依赖 <!-- 单元测试 --> <dependency> ..
SpringBoot中使用过滤器(filter)/监听器(listener)/拦截器(interceptorHandler)
YuLeiJavaEE的博客
06-15 558
SpringBoot中使用过滤器(filter)/监听器(listener)/拦截器(interceptorHandler) 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数在线用户数、过滤敏/高词汇、访问权限控制(URL级别)等业务需求。实现以上的功能,都会或多或少的用到过滤器、监听器、拦截器。 一.SpringBoot整合过滤器Filter 过滤器Filter,是Servlet的的一个实用技术了。可以通过过滤器,对请求进行拦截处理。 编写普通Java实现接口Filte
在线实时统计在线人数
11-23
主要是在线统计实时统计在线人数,这个是用java代码
Spring Boot入门(25):三位程序员谁能守护项目入口?- 过滤器、拦截器、监听器的对比及使用场景
**My Coding Family**
08-25 2004
Spring Boot 如何使用过滤器、拦截器、监听器对比及使用场景,一文带你吃透它。
springboot实现在线人数统计
weixin_44846436的博客
11-18 1745
笔者做了一个网站,需要统计在线人数在线有两种:一、如果是后台系统如果登录算在线,退出的时候或者cookie、token失效的时候就算下线二、如果是网站前台,访问的时候就算在线今天我们来讲一下第2种情况,网站前台如何统计同时在线人数
springboot项目Redis统计在线用户
最新发布
hahaha的博客
05-28 1002
我的项目有个显示用户的遗忘曲线,需要统计在线用户以计算他们的曲线。
SpringBoot-使用心跳机制+JWT实现用户实时在线统计
热门推荐
BoringError的博客
01-05 2万+
最近再做一个小程序项目,在这个项目中需要有一个管理员用户在线实时刷新的功能,一开始用的是网上广为流传的做法,即创建一个session监听器,在用户登录时即创建一个session,监听器记录下来并且把count加一,当用户点击注销时把session给remove掉,count减一。但是这个方案只适合估计一个值,而不适合做精确的在线人数判断,譬如,当用户关闭浏览器时并不会触发session监听,当...
SpringBoot-心跳机制+redis实现网站实时在线人数统计
qq_45243783的博客
04-12 4700
4.一般在前后分离项目中,都是有统一返回数据格式的,以及一些项目通用配置。有时候我们需要在响应流中设置返回数据,因此有如下工具类。可以看到成功访问了,并且该用户的token会一直续期。3.定义一个类,用户统计用户的在线人数等操作。1.新建sp项目,导入如下pom.xml。用户登录机制时序图如下。redis序列化配置。
Springboot在线人数显示
小小码农
03-17 7204
之前看了很多种在线人数统计的方案,用的比较多是监听session创建的,我自己总结了一下,没有用监听session创建的,可能我自己测试的时候发现问题比较多,我用的是attribute监听直接上代码吧。 session监听器: @WebListener public class SessionListener implements HttpSessionAttributeListener{ ...
springboot 在线人数显示整理(HttpSessionListener,Redis,WebSocket)
weixin_44889894的博客
08-13 957
这里我整理了几种方法: 方法一:通过监听器HttpSessionListener 步骤一:编写监听器 //实现HttpSessionListener接口 @WebListener public class OnlineUserListener implements HttpSessionListener { public static List<String> list = new ArrayList<String>(); //监听session的创建,synchr
spring boot + redis 实现在线用户统计
vc4436的专栏
08-04 1566
在线用户统计 实时在线用户 spring boot + redis 在线用户统计
基于SpringBoot的音乐厅Web订票系统实现
资源摘要信息:"音乐厅订票系统源码是基于Web的订票系统,它是由Java语言编写,并采用了SpringBoot框架进行开发。系统采用了B/S架构和MVC设计模式,支持多种操作系统环境,如Windows和Mac。开发环境包括IDEA、JDK1.8...
写文章

热门文章

  • SpringBoot+JWT实现单点登录解决方案 11690
  • Java常用的几种JSON解析工具 9768
  • Java实现本地缓存的几种方式 9498
  • SpringBoot实现异步调用的几种方式 7219
  • SpringBoot中配置Https入门 6735

分类专栏

  • SpringBoot 40篇
  • MySQL
  • Java入门 18篇
  • WebRTC 3篇
  • redis 3篇
  • SpringCloud 8篇
  • Spring 2篇
  • Java 19篇
  • RabbitMQ 1篇
  • Android 1篇

最新评论

  • Java实现本地缓存的几种方式

    sole.mjc: 手写本地缓存,第一次调用的时候放不进去值

  • Java实现本地缓存的几种方式

    mfylove: 大于系统时间改成小于系统时间就好了,小问题

  • SpringBoot中配置Https入门

    梧桐_月: 你的解决了嘛,我也是这个问题

  • SpringBoot中配置Https入门

    qq_53122140: 配置完启动的时候出现这个错误 Unable to start embedded Tomcat server

  • SpringBoot+JWT实现单点登录解决方案

    weixin_48329222: 有源码嘛?公开一下表情包

大家在看

  • 代码练习:水仙花数 148
  • 基于ssm+vue个性化旅游线路推荐系统(开题报告+程序+论文+java)
  • 基于ssm+vue个人文献管理系统(开题报告+程序+论文+java)
  • 基于ssm+vue个人资金账户管理(开题报告+程序+论文+java)
  • 中国各省/地级市/县域统计年鉴面板数据三合一(2024全新整理) 389

最新文章

  • SpringBoot集成Swagger的使用
  • SpringBoot中HttpClient的学习
  • FastJson的学习
2023年104篇
2015年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qinxun2008081

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司郑州百度网站优化排名嘉兴网站优化公司费用江苏专业网站排名优化公司有效网站优化哪里好化工行业网站优化传播会所网站优化大余网站优化效果好的手机网站优化网站搜索引擎网站优化哪个公司好网站优化推广招商信息网站域名优化经典易速达长宁区官方网站优化定制方案河北网站关键词排名优化学习韶关新型的免费网站优化灯塔网站搜索优化杭州网站快照优化钟楼区网站整站优化给网站优化公司提供一站式服务徐汇区网站优化价格费用吐鲁番网站怎么优化温州网站优化策略百度网站优化公司杭州优化网站排名服务商网站优化公司是做什么的沧州优化网站怎么样自动优化网站建设电话口碑好的优化网站排名漯河优化网站建设优化网站效果马鞍山手机网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化