HttpSession事件监听器的sessionCreated不被执行

发布于 2022-09-07 20:55:41 字数 1733 浏览 7 评论 0

项目中需要统计在线用户数,用了HttpSessionListener,LoginController调用request.getSession(),HttpSessionListener事件监听器的sessionCreated不执行。

相关代码

@WebListener
public class SessionListener  implements HttpSessionListener, HttpSessionAttributeListener {

    public static final Logger logger = LoggerFactory.getLogger(SessionListener.class);

    /**
     * 记录session的数量
     */
    public int count = 0;

    public SessionListener(){

        logger.info("SessionListener......");
    }

    @Override
    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
        logger.info("===============sessionCreated===============");
        System.out.println("【HttpSessionListener监听器】count++  增加");
        count++;
        httpSessionEvent.getSession().getServletContext().setAttribute("count", count);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
        logger.info("===============sessionDestroyed===============");
        System.out.println("【HttpSessionListener监听器】count--  减少");
        count--;
        httpSessionEvent.getSession().getServletContext().setAttribute("count", count);

    }

    @Override
    public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("1111111111111111111111111111");
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("222222222222222222222222222222");
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("333333333333333333333333333333333");
    }

项目启动时,有打印SessionListener......,说明已经监听类已经初始化,有调用到监听。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

草莓酥 2022-09-14 20:55:41

打印SessionListener...... 只能说明这个监听器被spring容器归纳,因为你这句是在构造函数里。
除了写一个@WebListener的类之后。还需要configuration配置这个监控器

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文