程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> session-javaweb統計在線人數,為什麼有時候在線人數為-1?

session-javaweb統計在線人數,為什麼有時候在線人數為-1?

編輯:編程解疑
javaweb統計在線人數,為什麼有時候在線人數為-1?

javaweb統計在線人數,代碼如下,不知道哪裡出了問題,有時候顯示在線人數為-1

/* Session創建事件 */
    public void sessionCreated(HttpSessionEvent event) {
        // TODO Auto-generated method stub
        ServletContext ctx = event.getSession().getServletContext();
        Integer numSessions = (Integer) ctx.getAttribute("numSessions");
        if (numSessions == null) {
            numSessions = new Integer(1);
        } else {
            int count = numSessions.intValue();
            numSessions = new Integer(count + 1);
        }
        ctx.setAttribute("numSessions", numSessions);

    }

    /* Session失效事件 */
    public void sessionDestroyed(HttpSessionEvent event) {
        // TODO Auto-generated method stub
        ServletContext ctx = event.getSession().getServletContext();
        Integer numSessions = (Integer) ctx.getAttribute("numSessions");
        if (numSessions == null) {
            numSessions = new Integer(0);
        } else {
            int count = numSessions.intValue();
            numSessions = new Integer(count - 1);
        }
        ctx.setAttribute("numSessions", numSessions);
    }

jsp頁面:
當前在線人數有<%=application.getAttribute("numSessions") %> 人

求指教,謝謝!

最佳回答:


在Session失效事件那裡,判斷numSessions是否為null有點問題。比如說我現在一個人登錄,然後你判斷numSessions是否為空,是,所以讓它為1,然後我再退出操作,你又判斷numSessions是否為空,否,所以你直接減1,然後numSessions就是為0了,那我要是再退出一下呢,numSessions是等於0而不是null,所以你又減1了,就變成-1了。

這個程序的問題,應該在於我沒有登錄都可以進行退出操作吧

rongxiang111
cocowuyung
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved