Java 實現網站當前線上使用者統計
通過SessionListenr可以監聽session的建立和銷燬,所以首先要寫一個類MySessionListener,實現javax.servlet.http.HttpSessionListener介面及其sessionCreated()、sessionDestroyed()方法:
import java.util.HashSet;import javax.servlet.ServletContext;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import
// 然後使用sessions.size()獲取當前活動的session數,即為“線上人數” }publicvoid 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());
%>
.......