zoukankan      html  css  js  c++  java
  • 监听器在线用户列表

    index.jsp

    在线用户列表:<br>
    <%
    List<User> userList = (List<User>)application.getAttribute("userList");
    if(userList!=null) {
        for(User u : userList) {
            out.print(u+"<br>");
        }
    }
    %>

    User.java

    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class User {
        private String sessionid;
        private Date firstTime;
    
        public String getSessionid() {
            return sessionid;
        }
    
        public void setSessionid(String sessionid) {
            this.sessionid = sessionid;
        }
    
        public Date getFirstTime() {
            return firstTime;
        }
    
        public void setFirstTime(Date firstTime) {
            this.firstTime = firstTime;
        }
    
        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + ((firstTime == null) ? 0 : firstTime.hashCode());
            result = prime * result + ((sessionid == null) ? 0 : sessionid.hashCode());
            return result;
        }
    
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            User other = (User) obj;
            if (firstTime == null) {
                if (other.firstTime != null)
                    return false;
            } else if (!firstTime.equals(other.firstTime))
                return false;
            if (sessionid == null) {
                if (other.sessionid != null)
                    return false;
            } else if (!sessionid.equals(other.sessionid))
                return false;
            return true;
        }
    
        @Override
        public String toString() {
            return "User [sessionid=" + sessionid + ", 最近登录时间="
                    + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(firstTime) + "]";
        }
    
    }

    TestSessionlistener.java

    public void sessionCreated(HttpSessionEvent sessionEvent) {
            userCount++;
            if(userList==null) {
                userList = new ArrayList<User>();
            }
            HttpSession session = sessionEvent.getSession();
            
            String sessionid = session.getId();
            long stime = session.getCreationTime();
            
            if(!checkUsersSession(sessionid, userList)) {
                User u = new User();
                u.setFirstTime(new Date(stime));
                u.setSessionid(sessionid);
                userList.add(u);
            }
            
            session.getServletContext().setAttribute("userCount", userCount);
            session.getServletContext().setAttribute("userList", userList);
        }
    
        private boolean checkUsersSession(String sessionid, ArrayList<User> userList2) {
            for(User u : userList2) {
                if(u.getSessionid().equals(sessionid)) {
                    return true;
                }
            }
            return false;
        }
    
        /**
         * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
         */
        public void sessionDestroyed(HttpSessionEvent sessionEvent) {
            userCount--;    
            HttpSession session = sessionEvent.getSession();    
    
            String sessionid = session.getId();
            System.out.println(sessionid + "的用户下线");
            
            if(checkUsersSession(sessionid, userList)) {
    //            for(User u : userList) {
    //                if(sessionid.equals(u.getSessionid())) {
    //                    userList.remove(u);
    //                }
    //            }
                Iterator<User> iter = userList.iterator();
                while(iter.hasNext()) {
                    User u = iter.next();
                    if(u.getSessionid().equals(sessionid)) {
                        iter.remove();
                    }
                }
            }
            session.getServletContext().setAttribute("userCount", userCount);
            session.getServletContext().setAttribute("userList", userList);
        }
    
    }
  • 相关阅读:
    小结:机器学习基础部分
    概率图:HMM:Evaluation问题(前向算法/后向算法)
    概率图:GMM求解:EM优化算法的导出(从【ELBO+KL】和【ELBO+Jensen】两个角度导出)
    概率图:GMM:EM算法及其收敛性证明
    概率图:高斯混合模型(GMM)
    概率图基础:D-separation;全局Markov性质;Markov Blanket
    概率图基础:概率基本概念、条件独立性、图求解联合概率的规则合理性推理
    mysql索引失效
    mysql 统计行数count(*)
    mysql如何收缩表空间
  • 原文地址:https://www.cnblogs.com/jgjk/p/7441771.html
Copyright © 2011-2022 走看看