Java Web应用开发案例|使用监听器统计Web站点的在线用户数

简介: HttpSessionListener监听器,主要用于监听HttpSession对象的生命期变化,如创建session和释放session事件。一个session代表一个在线用户,因此常用HttpSessionListener监听器跟踪管理在线用户。

image.png

HttpSessionListener监听器,主要用于监听HttpSession对象的生命期变化,如创建session和释放session事件。一个session代表一个在线用户,因此常用HttpSessionListener监听器跟踪管理在线用户。

public interface HttpSessionListener {
default void sessionCreated( HttpSessionEvent se){}
[]default void sessionDestroyed(HttpSessionEvent se) {}
}

01、在线用户数统计

使用监听器,统计Web站点的在线用户数,操作步骤如下所述。

(1) 定义监听器OnlineUserListerner。

aWebListener
public class OnlineUserListerner
implements HttpSessionlistener []

(2) 定义成员变量userCount,用于记录在线用户数。

为了防止高并发产生影响,userCount的数据类型为原子整数AtomicInteger。

public class OnlineUserListerner
implements HttpSessionListener{
private AtomicInteger userCount;
public OnlineUserListerner(){
userCount = new AtomicInteger(0);
}
}

(3) 新用户上线,触发sessionCreated事件。

public void sessionCreated(HttpSessionEvent se){
int user = userCount.incrementAndGet();
System.out.println("在线用户数:” + user);
}

(4) 当session超时失效时,会触发sessionDestroyed事件。

public void sessionDestroyed(HttpSessionEvent se){
int user = userCount.decrementAndGet();
System.out.println("在线用户数:" + user);
}

小结

HttpSessionListener监听器默认为单例模式,在Tomcat启动时会自动创建监听器对象。因此,在线用户数可以使用成员变量记录。有些监听器不是单例模式,使用成员变量要非常小心。

用户主动退出系统,调用HttpSession的invalidate()方法会销毁当前的session,但是Web应用会自动创建另外一个会话对象,因此在线人数不会变。只有用户超时未操作,服务器主动删除session对象时,在线用户数才会减少。

目录
相关文章
|
11天前
|
前端开发 JavaScript Java
计算机Java项目|基于Web的足球青训俱乐部管理后台系统的设计与开发
计算机Java项目|基于Web的足球青训俱乐部管理后台系统的设计与开发
|
2天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
2天前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
|
2天前
|
缓存 负载均衡 安全
Servlet与JSP在Java Web应用中的性能调优策略
【6月更文挑战第23天】在Java Web中,Servlet和JSP调优至关重要,以应对高并发和复杂业务带来的性能挑战。优化包括Servlet复用、线程安全、数据库连接池,以及JSP的编译优化、使用JSTL、页面缓存和静态内容分离。全局优化涉及负载均衡、异步处理和缓存策略。通过这些实践,开发者能提升应用响应速度和吞吐量,确保高负载下的稳定运行。
|
2天前
|
搜索推荐 Java 数据库连接
探索Java Web开发:Servlet与JSP的协同工作原理
【6月更文挑战第23天】Java Web开发中,Servlet和JSP协同打造动态网站。Servlet是服务器端的Java程序,处理HTTP请求并执行复杂逻辑;JSP则结合HTML和Java,生成动态内容。Servlet通过`doGet()`等方法响应请求,JSP在首次请求时编译成Servlet。两者常搭配使用,Servlet处理业务,JSP专注展示,通过`RequestDispatcher`转发实现数据渲染。这种组合是Java Web应用的基础,即使新技术涌现,其价值仍然重要,为开发者提供了强大的工具集。
|
2天前
|
Java Serverless
Java字符个数统计代码
Java字符个数统计代码
20 6
|
5天前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
33 7
|
1天前
|
Java
java使用Files.walkFileTree统计文件夹下的文件夹和文件数量
java使用Files.walkFileTree统计文件夹下的文件夹和文件数量
6 0
|
4天前
|
Java
2022蓝桥杯大赛软件类省赛Java大学B组真题 刷题统计
2022蓝桥杯大赛软件类省赛Java大学B组真题 刷题统计
10 0
|
5天前
|
安全 前端开发 Java
Java Web项目登录报Session Error
Java Web项目登录报Session Error
12 0