北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收

Listener之使用HttpSessionListener和HttpSessionAttributeListener

2/22/2017來源:ASP.NET技巧人氣:745

HttpsessionListener用于監聽用戶session的創建和銷毀,實現該接口的監聽器需要實現如下兩個方法: 1.sessionCreated(HttpSessionEvent se):用戶與服務器的會話開始,創建時觸發該方法。 2.sessionDestroyed(HttpSessionEvent se):用戶與服務器的會話斷開,銷毀時觸發該方法。 HttpSessionAttributeListener則用于監聽HttpSession(session)范圍內屬性的變化,實現該接口的監聽器需要實現attributeAdded(),attributeRemoved(),attributeReplaced()三個方法。由此可見,是HttpSessionAttributeListener監聽session范圍內屬性的改變,而ServletContextAttributeListener監聽的是application范圍內屬性的改變。 實現HttpSessionListener接口的監聽器可以監聽每個用戶會話的開始斷開,因此應用可以通過該監聽器監聽系統的在線用戶。 下面是該監聽器的實現類。 這里寫圖片描述 這里寫圖片描述 上面的監聽器實現類實現了HttpSessionListener接口,該監聽器可用于監聽用戶與服務器之間session的開始,關閉,當用戶與服務器之前的session開始時,如果該session是一次新的session,程序就將當前的session ID,用戶名存入application范圍的Map中;當用戶與服務器之間的session關閉時,程序從application范圍的Map中刪除該用戶的信息。通過上面的方式,application范圍內的Map就記錄了當前應用的所有在線用戶 顯示在線用戶的頁面代碼很簡單,只要迭代輸出application范圍的Map即可,如下 這里寫圖片描述 這里寫圖片描述 因為本機只啟動了一個瀏覽器,如果啟動了三個不同的瀏覽器,將會有三個模擬的用戶訪問該應用,所以現在只能看到一個用戶的登陸信息。 需要指出的是,采用HttpSessionListener監聽用戶在線信息比較“粗糙”,只能監聽到有多少人在線,如果應用需要監聽到每個用戶停留在哪個頁面,本次在線的停留時間,用戶的訪問ip等信息,則應該考慮定時檢查HttpServletRequest來實現。

問題:如何更精確地監聽每個用戶請求? 通過檢查HttpServletRequest的做法,這種做法的思路是: 1.定義一個ServletRequestListener,這個監聽器負責監聽每個用戶請求,當用戶請求到達時,系統將用戶請求的session ID,用戶名,用戶IP,正在訪問的資源,訪問時間記錄下來。 2.啟動一條后臺線程,這條后臺線程每隔一段時間檢查上面的每條在線紀錄,如果某條在線紀錄的訪問時間與當前時間相差超過了指定值,將這條在線紀錄刪除即可。這條后臺線程應隨著Web應用的啟動而啟動,可考慮使用ServletContextListener來完成。 下面定義一個ServletRequestListener,它負責監聽每次用戶請求:每次用戶請求到達時,如果是新的用戶會話,將相關信息插入數據表,如果是老的用戶會話,則更新數據表中已有的在線記錄。 這里寫圖片描述 這里寫圖片描述 接下來定義一個ServletContextListener,它負責啟動一條后臺線程,這條后臺線程將會定期檢查在線記錄,并刪除那些長時間沒有重新請求過的記錄,該代碼如下: 這里寫圖片描述 這里寫圖片描述 上面的程序啟動的后臺線程定期檢查的時間間隔為5秒,實際項目中這個時間應該適當的加大,尤其是在線用戶較多時,否則應用將會頻繁地檢查online_inf數據表中的全部記錄,這將導致系統開銷過大。 還需要一個DAO類,代碼如下 這里寫圖片描述 這里寫圖片描述 這里寫圖片描述 顯示在線用戶的頁面十分的簡單,只要查詢online_inf表中全部記錄,并將這些記錄顯示出來即可。代碼如下 這里寫圖片描述



pk10有什么方法平刷
北京赛车单双技巧 北京赛车pk10黑客软件 北京pk10计划免费软件 pk10前二做号工具 pk10专业预测 pk10民间高手 北京pk10挂机选号经验分享模式 pk10冠军3码倍投计划 北京赛车计划app手机版 北京赛车开奖软件 pk10最牛稳赚模式最新 pk10全天免费计划 易算北京pk10准不准 pk10赛车7码技巧 pk10八码滚雪球3期一收
北京时时彩赛车开奖记录 棋牌游戏最低提现10元 手机彩票平台 重庆时时历史开奖记录 11选五中奖助手官方版 山东时时个位走势图 天天选4走势图带连线图 网赌为什么不允许倍投 五大联赛什么意思