第一遍聽,確實比較難懂。首先,你要明白幾個知識點,就好懂多了:
目的:獲取在線(用戶數量)+打?。ㄓ脩袅斜恚?。用戶列表需包含三個信息(1、sessionId 2、ip 3、firstTime)。
原理:服務器會為每個用戶創建一個session,而一個用戶在這個session生命周期中,可以多次訪問瀏覽器(即,多個request)。
注意事項一:用戶列表中的ip只能從request中獲取,所以添加用戶信息需要在request的init方法中操作
注意事項二:如原理所說,只有當session銷毀時,才能說明用戶已經下線。所以需要在session的destroy方法中減去用戶。
目的:獲取在線(用戶數量)+打?。ㄓ脩袅斜恚?。用戶列表需包含三個信息(1、sessionId 2、ip 3、firstTime)。
原理:服務器會為每個用戶創建一個session,而一個用戶在這個session生命周期中,可以多次訪問瀏覽器(即,多個request)。
注意事項一:用戶列表中的ip只能從request中獲取,所以添加用戶信息需要在request的init方法中操作
注意事項二:如原理所說,只有當session銷毀時,才能說明用戶已經下線。所以需要在session的destroy方法中減去用戶。
2016-09-15
添加用戶時為什么是在requestInitialized而不是sessionCreate中?一個用戶不是對應一個session嗎?新手勿噴
2016-09-12
說下,一,在MyServletRequestListener中如果能夠通過sessionId獲取User對象時才需要重新將userList放入application,避免數據未改動做不必要的操作。二,您在此方法中將用戶從userList中剔除,卻沒有重新放入application中,這是一個疏忽;其次,sessionDestroyed方法是在session銷毀時調用,關閉頁面時并不會導致session被銷毀,所以sessionDestroyed方法貌似不會被調用,即使用戶關閉頁面,仍不會改變application中的數據。。。
2016-09-07
servletcontextevent.getServletContext() 老師說獲取當前應用的什么對象?(2分50處)
2016-09-06
最新回答 / wesleycheung
老師說的,綁定其實就是保存,通過session.setAttribute(0把對象保存到session的對象當中解綁就是通過session.removeAttribute() 移除沒有addAttribute()啊
2016-08-31