A. java問題:統計網站在線人數沒有session行不行
一般來講,統計在線人數不能用session,應該用application
B. java統計網站在線人數,瀏覽器被關閉時(非正常關閉)能夠正確的統計在線人數
用session對象!每次打開一個瀏覽器session就會創建一個唯一的id 每五秒統計一下id個數即可!
瀏覽器關閉 不管是正常還是非正常,session對象都會消失!
C. 如何實現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 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頁面代碼使用以下代碼就可以實現當前在線人數統計輸出:
D. java 怎樣統計系統當前在線人數
統計在線人數的方式不同(比如登錄人數或者頁面訪問人數)具體的實現方式不同,但是記錄統計人數的方法是一樣的1。定義一個靜態變數或者在application作用於放置一個變數存放在線人數,如果是登錄人數,則在用戶登錄時+1,如果是頁面訪問人數就添加一個監聽器listener進行監聽(sessionId) 如果有用戶訪問頁面就+1
E. 求一個java代碼:瀏覽器被關閉時(非正常關閉)能夠正確的統計在線人數
正確是做不到,只能是估計,需要你定義一個閥值,估計它的取值,然後與你統計的在線人數相乘,得到一個近似值即可!~
F. java怎麼實統計在線人數,和訪問量
簡單的說個我的思路供你借鑒:
在線人數,我理解為當前應用的session數目,不過sevlert好像不提供獲取全部session的方法,可以通過加一個sessionlistener來記錄(創建就+1,銷毀就-1)
訪問量相對簡單,你定義一個全局的計數器就好了,來一個(這個有很多種方法,比如:有一個新的session被創建)人你就+1
G. Java統計在線人數,用過濾器好還是攔截器
你好,要想知道哪個好,要說一下兩者的區別,攔截器是struts的或者spring mvc框架封裝的,過濾器是java ee自身的
過濾器是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts的 action進行業務邏輯,比如過濾掉非法url。主要為了減輕伺服器負載。減少壓力
攔截器是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法。比如可以用攔截器做一些許可權管理 或者log之類的事情。
兩者作用是不同的。如果單純的統計,建議還是使用過濾器比較好
希望可以解決你的問題
H. java統計瀏覽器訪問量
利用session創建計數用於記錄當前在線人數!離開時間只能依據session被殺死時的模糊時間,如果要獲得更准確的時間可以把session的存活期弄斷點,將用戶訪問記錄存儲到cookie里,我們只能依據用戶多久沒操作 session被幹掉來判斷用戶可能離開了,因為期間用戶不可能都對伺服器發出退出請求,盡管我們都設有退出的操作模塊!如果只是用於訪問量的話就不需要考慮session被殺死吧!只管記錄有多少遊客登入進來就行了!
I. java 怎樣統計系統當前在線人數
用戶表裡面加一個欄位status
當用戶上線以後,就把status設置為1
統計在線人數就是一條sql語句:
selectcount(*)from用戶表wherestatus=1