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());

%>

.......

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM