我用代码教会你(三):Listener监听器实现在线用户统计

2024-05-11 10:48

本文主要是介绍我用代码教会你(三):Listener监听器实现在线用户统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Listener监听器实现在线用户统计

  • 1.前言
  • 2.业务场景
  • 3.效果展示
  • 4.代码实现
    • 4.1 项目结构
    • 4.2 页面准备
      • 4.2.1 主页(index.jsp)
      • 4.2.2 登录页(login.jsp)
      • 4.2.3 注册页(register.jsp)
    • 4.2 Controller准备
      • 4.2.1 处理登录的Controller
      • 4.2.2 处理退出的控制器
      • 4.2.3 注册功能的控制器
    • 4.3 Listener监听器编写
  • 5. 知识点总结
    • 5.1 Listener让我们更好的掌握4个作用域
    • 5.2 Listener其他扩展
    • 5.2.1 实现网站点击率
    • 5.2.2 服务器日志
  • 6. 附上完整源代码

1.前言

当大家刚开始接触Java Web做项目时,掌握了Servlet后,也许对Listener监听器的作用,以及代码编写并未能很好的掌握。本文通过实现在线用户统计以及在线用户列表的代码实操,让大家通过实际操作理解并能使用Listener监听器。

2.业务场景

你是否想在项目中显示一个在线人数而无从下手???
你是否想在自己的平台上查看当前登录的用户列表???
本文通过JSP+Servlet+监听器Listener为你实现,花5分钟一起来看看吧。

3.效果展示

打开不同的浏览器进行登录。可以看到当前登录的人数以及用户列表。
在这里插入图片描述
当用户退出时,则注销当前用户。并且看到在线用户数量-1,以及用户列表也减少该用户。
在这里插入图片描述

4.代码实现

4.1 项目结构

在这里插入图片描述

4.2 页面准备

4.2.1 主页(index.jsp)

index.jsp用于显示当前登录用户(用户存在Session中),以及显示登录人数与登录用户的列表记录。还有login.jsp与register.jsp页面的跳转。由于登录用户的数据时存储在application域中的,因此需要在index.jsp中先注册,再登录。则可以看到用户登录列表。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html><head><title>主页</title></head><body><h1>welcome to index.jsp!</h1><c:if test="${session_user!=null}">欢迎您,${session_user.userName}<a href="loginOut">退出</a><a href="">用户列表</a></c:if><c:if test="${session_user==null}"><a href="login.jsp">登录</a><a href="register.jsp">注册</a></c:if>
<a href="index.jsp">主页</a><span style="color: red">${tip}</span><hr/><h3>在线用户</h3>当前在线用户人数:[${fn:length(onlineUser)}]<br/>用户列表:<br/><c:forEach items="${onlineUser}" var="user"  varStatus="u">[${u.index+1}]位,在线[${user}]用户。<br/></c:forEach></body>

这篇关于我用代码教会你(三):Listener监听器实现在线用户统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/979321

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount