本文實(shí)例為大家分享了java監(jiān)聽器實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)的具體代碼,供大家參考,具體內(nèi)容如下
1.在工程中創(chuàng)建監(jiān)聽類SessionListener 并且實(shí)現(xiàn)HttpSessionListener接口,代碼如下
import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class SessionListener implements HttpSessionListener { private static int count = 0; public void sessionCreated(HttpSessionEvent se) { count++; System.out.println("session創(chuàng)建:" + new java.util.Date()); } public void sessionDestroyed(HttpSessionEvent se) { count--; System.out.println("session銷毀:" + new java.util.Date()); } public static int getCount() { return count; }}
2.配置web.xml
<listener> <description>session監(jiān)聽器</description> <listener-class>com.xxx.SessionListener</listener-class></listener>
3.在JSP頁面中顯示在線人數(shù)
<% int count=com.xxx.SessionListener.getCount(); out.println("在線人數(shù):"+count);%>
注意:servlet中對session的監(jiān)聽有很多接口,功能很靈活,最常用的是監(jiān)聽Session和Attribute。這里要澄清一下概念,servlet中的session監(jiān)聽和Attribute監(jiān)聽含義有差別,session監(jiān)聽指的不是我們一般所理解的放置一個(gè)session或者銷毀一個(gè)session,這是Attribute監(jiān)聽的功能,因?yàn)閟ervlet中放置session的語法是session.setAttribute(“session名”,要放入的對象)。而session監(jiān)聽,監(jiān)聽的是HTTP連接,只要有用戶與server連接,就算連接的是一個(gè)空白的jsp頁面,也會(huì)觸發(fā)session事件,所以此處的session實(shí)際上指的是connection,用來統(tǒng)計(jì)當(dāng)前在線用戶數(shù)最合適了。
這種實(shí)現(xiàn)在線人數(shù)統(tǒng)計(jì)的方法是不是很特別,希望這篇文章對大家的學(xué)習(xí)有所幫助,有所啟發(fā)。
新聞熱點(diǎn)
疑難解答
圖片精選