blog.Toby

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks

          HttpSessionBindingListener接口有兩方需要實現的方法:
          public synchronized void valueBound(HttpSessionBindingEvent httpsessionbindingevent)
          public synchronized void valueUnbound(HttpSessionBindingEvent httpsessionbindingevent)

          Session創(chuàng)建的時候Servlet容器將會調用valueBound方法;Session刪除的時候則調用valueUnbound方法.

          具體應用可以跟蹤每個在登錄用戶,記錄相關的信息,以及在其超時的時候及時的刪除相關的信息.

          實例代碼如下:
          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;
          ....
          ....
          public synchronized void valueBound(HttpSessionBindingEvent httpsessionbindingevent){
          //檢查是否有效
          if(!Valid()) return;
          //檢查信息是否已經存在.不存在則添加.

          if(Info.online.containsKey(m_userId))
          {
          //記錄日志信息
          log.info("initial user context....");
          UserOnlineStruct UOS = (UserOnlineStruct)Info.online.get(m_userId);
          UOS.loginIp = uos.loginIp;
          UOS.loginTime = uos.loginTime;
          UOS.sessionId = uos.sessionId;
          }
          else{
          Info.online.put(m_userId, uos);
          }
          }

          public synchronized void valueUnbound(HttpSessionBindingEvent httpsessionbindingevent){
          //檢查是否有效
          if(!Valid()) return;
          //刪除用戶相關信息
          //記錄日志信息
          log.info("destory user context....");
          Info.online.remove(m_userId);
          }

          posted on 2006-01-16 09:49 渠上月 閱讀(423) 評論(0)  編輯  收藏 所屬分類: java tips
          主站蜘蛛池模板: 贵德县| 丘北县| 民和| 开原市| 恩平市| 遵义县| 陵川县| 永昌县| 富阳市| 理塘县| 梨树县| 咸丰县| 遵义市| 乌海市| 梧州市| 聂拉木县| 万荣县| 景东| 深圳市| 湘阴县| 自治县| 呼图壁县| 陵水| 古田县| 通河县| 印江| 富民县| 河池市| 鲁山县| 敖汉旗| 梁河县| 沁阳市| 尼玛县| 大石桥市| 忻城县| 那曲县| 奇台县| 滕州市| 岑溪市| 夹江县| 高雄市|