林小冉丶 2019-12-19 03:09 采纳率: 50%
浏览 1013

SSM框架中如何实时统计在线人数?

已经尝试过implements HttpSessionListener,然后在web.xml中配置监听器发现并不管用;但是当把spring本身的监听器注释掉后之前配置的计数监听器就起作用了,但是项目进不去了.

//spring的监听器
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
//统计在线人数的监听器
<listener>
    <listener-class>web.CountListener</listener-class>
  </listener>
//代码
package web;

import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class CountListener implements HttpSessionListener{

    /**
     * session对象创建之后,容器会调用
     * 此方法。
     * 注:
     *      HttpSessionEvent是事件对象。
     */
    public void sessionCreated(
            HttpSessionEvent arg0) {

        System.out.println(
                "sessionCreated方法");

        HttpSession session = 
                arg0.getSession();
        ServletContext sctx = 
                session.getServletContext();

        //通过Servlet上下文获得绑订的人数
        Integer count = 
                (Integer)sctx.getAttribute(
                        "count");
        if(count == null){
            //第一个用户
            count = 1;
        }else{
            //不是第一个用户
            count ++;
        }
        sctx.setAttribute("count", count);

    }



    /**
     * session对象销毁之后,容器会调用此方法。
     */
    public void sessionDestroyed(
            HttpSessionEvent arg0) {
        System.out.println(
                "sessionDestroyed方法");

        ServletContext sctx = 
            arg0.getSession().getServletContext();

        Integer count = 
                (Integer)sctx.getAttribute(
                        "count");
        count --;
        sctx.setAttribute("count", count);

    }



}




最后总结:

1.SSM框架中到底如何实时统计在线人数?

2.两个监听器同时写在web.xml里貌似只会执行spring的,不会执行web.CountListener,这个怎么办?

  • 写回答

1条回答 默认 最新

  • qf_and_ni 2019-12-19 17:32
    关注

    单独写一个拦截器,拦截登陆和退出

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题