HttpSessionListener简介说明

欢喜 Servlet 发布时间:2025-06-04 16:28:26 阅读数:1980 1
下文笔者讲述HttpSessionlistener简介说明,如下所示

HttpSessionListener简介

`HttpSessionListener`是Java Web应用中用于监听HTTP会话(HttpSession)生命周期事件
  监听器接口
   它属于Servlet规范一部分
  适用于需要在用户会话创建或销毁时执行特定逻辑的场景

HttpSessionListener作用

`HttpSessionListener`的功能:
	-统计在线用户数
	-记录用户登录/登出时间
	-清理会话资源
	-触发会话级别的初始化或销毁操作

HttpSessionListener核心方法

方法 调用时机 说明
`sessionCreated(HttpSessionEvent se)` 当一个新`HttpSession`被创建时调用 可用于初始化会话数据
`sessionDestroyed(HttpSessionEvent se)` 当`HttpSession`被销毁(超时或主动失效)时调用可用于清理资源或更新用户状态

统计当前在线用户数

public class OnlineUserCounterListener implements HttpSessionListener {

    private static int activeSessions = 0;

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        activeSessions++;
        System.out.println("新会话创建,当前在线人数:" + activeSessions);
        se.getSession().getServletContext().setAttribute("onlineUsers", activeSessions);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        activeSessions--;
        System.out.println("会话销毁,当前在线人数:" + activeSessions);
        se.getSession().getServletContext().setAttribute("onlineUsers", activeSessions);
    }
}

web.xml注册监听器

<listener>
    <listener-class>com.example.OnlineUserCounterListener</listener-class>
</listener>

与其它监听器对比

监听器类型 接口名 监听对象 典型用途
`HttpSessionListener` `javax.servlet.http.HttpSessionListener` `HttpSession` 会话创建/销毁处理
`ServletContextListener` `javax.servlet.ServletContextListener` `ServletContext` 应用启动/关闭处理
`ServletRequestListener` `javax.servlet.ServletRequestListener` `ServletRequest` 请求开始/结束处理

HttpSessionListener注意事项

注意点说明
线程安全多个用户并发访问时
共享变量需注意线程安全(如使用`AtomicInteger`)
会话超时默认会话超时时间为30分钟,
可在`web.xml`中配置
不可中断不能阻止会话的创建或销毁
单例性所有`HttpSessionListener`
实现类由容器管理为单例
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Servlet/202506/330.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者