看透springmvc(一)
servlet流程
一、按照b/s架構解釋相關知識:
由於http是無狀態、無連線的,上一次與下一次的狀態不能儲存;但是又為了避免每次都在登入的時候,都把上次的狀態帶過去,延伸出來了cookies,由於cookie(getParameter從browser取)存在偽造的風險、在server端,添加了session(getAttribute())來記錄每一次的會話,並在會話開啟的時候做出驗證;這也是servlet最重要的過程:filter,做許可權驗證,(非電商等專案)
業務中常用的監聽器、過濾器屬於servlet流程;
二、作用:
2.1監聽器概述
Session資料的鈍化與活化:
由於session中儲存大量訪問網站相關的重要資訊,因此過多的session資料就會伺服器效能的下降,佔用過多的記憶體。因此類似資料庫物件的持久化,web容器也會把不常使用的session資料持久化到本地檔案或者資料中。這些都是有web容器自己完成,不需要使用者設定。
不用的session資料序列化到本地檔案中的過程,就是鈍化;
當再次訪問需要到該session的內容時,就會讀取本地檔案,再次放入記憶體中,這個過程就是活化。
類似的,只要實現HttpSeesionActivationListener介面就是實現鈍化與活化事件的監聽
https://blog.csdn.net/panhaigang123/article/details/78760081
2.2 監聽器使用
線上人數監測:每一個線上人數,代表了一個session,所以實現servletcontextListener(每次服務重新發布或者銷燬時,寫入servletcontext ——在request中取出的就是服務的跟地址 )
httpSessionListener(每一個瀏覽器,進入網頁的時候,在服務端生成session的時候被監聽——如果訪問的是靜態資源則不會被寫入,並建立唯一的session)
ServletRequestSession
https://blog.csdn.net/panhaigang123/article/details/78760081介紹