zoukankan      html  css  js  c++  java
  • 统计当前在线人数

    当一个项目启动时,要统计当前在线人数,那么我们可以统计一个当前有几个session登录,增加一个session,表明已经有新浏览器访问该网站。实现

    HttpSessionListener, HttpSessionAttributeListener,覆盖其方法。
    public class UsersListener implements HttpSessionListener, HttpSessionAttributeListener {
        
        private ServletContext sc;
        //使用一个变量,进行统计
        private int count = 0;
        
        @Override
        public void sessionCreated(HttpSessionEvent event) {
            
            if( sc == null)
                sc = event.getSession().getServletContext();
            
            sc.setAttribute(Constants.SESSION_COUNT, count);
        }
    
        @Override
        public void sessionDestroyed(HttpSessionEvent event) {
            Enumeration<String> names = event.getSession().getAttributeNames();
            int line = 0;
            while(names.hasMoreElements()) {
                String name = names.nextElement();
                //统计剩余几个用户
    if(name.equalsIgnoreCase(Constants.FRONT_USER_SESSION)) {
                    line ++;
                }
            }
            if(line > 0) {
                count = line;
            }
            if(sc != null)
                sc.setAttribute(Constants.SESSION_COUNT, count);
        }
            //新增session
        @Override
        public void attributeAdded(HttpSessionBindingEvent event) {
            String name = event.getName();
            if(name.equalsIgnoreCase(Constants.FRONT_USER_SESSION))
                count ++;
            sc.setAttribute(Constants.SESSION_COUNT, count);
        }
    
        @Override
        public void attributeRemoved(HttpSessionBindingEvent event) {
            String name = event.getName();
            if(count > 0 && name.equalsIgnoreCase(Constants.FRONT_USER_SESSION))
                count --;
            sc.setAttribute(Constants.SESSION_COUNT, count);
        }
    
        @Override
        public void attributeReplaced(HttpSessionBindingEvent event) {
            
        }
        
    }
    工作小总结,有错请指出,谢谢。
  • 相关阅读:
    《linux/unix设计思想》读后感
    webserver ZooKeeper Cluster
    OS + RedHat 6.3 x64 / sshd X11 /
    nGrinder SocketTest.groovy
    OS + Centos7.6 gdm / xmanager xstart
    OS + CentOS 7 / VirtualBox 6.0 / VMware-Workstation-Full-15.1.0
    浅谈MySQL Replication(复制)基本原理
    MySQL存储引擎比较
    explain SQL语句性能检测
    看看JavaScript中void(0)的含义
  • 原文地址:https://www.cnblogs.com/zilanghuo/p/5201344.html
Copyright © 2011-2022 走看看