• Java 实现网站当前在线用户统计


    1.

     import java.util.HashSet;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
     
    public class MySessionListener implements HttpSessionListener {
     
           public void sessionCreated(HttpSessionEvent event) {
                  HttpSession session = event.getSession();
                  ServletContext application = session.getServletContext();
                  
                  // 在application范围由一个HashSet集保存所有的session
                  HashSet sessions = (HashSet) application.getAttribute("sessions");
                  if (sessions == null) {
                         sessions = new HashSet();
                         application.setAttribute("sessions", sessions);
                  }
                  
                  // 新创建的session均添加到HashSet集中
                  sessions.add(session);
                  // 可以在别处从application范围中取出sessions集合
    
         // 然后使用sessions.size()获取当前活动的session数,即为“在线人数”
           }
     
           public void sessionDestroyed(HttpSessionEvent event) {
                  HttpSession session = event.getSession();
                  ServletContext application = session.getServletContext();
                  HashSet sessions = (HashSet) application.getAttribute("sessions");
                  
                  // 销毁的session均从HashSet集中移除
                  sessions.remove(session);
           }
    }
    
     
    
    //然后再在web.xml中分别配置SessionListener和session超时时间(10分钟):
    
    <listener>
        <listener-class>全路径MySessionListener</listener-class>
    </listener>
    
    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>
    
    //最后在Jsp页面代码使用以下代码就可以实现当前在线人数统计输出:
    
    .......
    
    //当前在线:
    
    <% 
    
    HashSet sessions=(HashSet)application.getAttribute("sessions");
    
    out.print(sessions.size());
    
    %>
    
    .......
    
  • 相关阅读:
    Google 的开源技术protobuf 简介与例子(转)
    set 学习笔记
    map 学习笔记
    网络编程-socket学习笔记
    POSIX线程_学习笔记
    shell 脚本练习
    vector 学习笔记
    用archlinux作为日常开发机的感受
    python中获取上一个月一号的方法
    golang在linux下的开发环境部署[未完]
  • 原文地址:https://www.cnblogs.com/bravolove/p/6149163.html
Copyright © 2020-2023  润新知