java之辨析Session Cookie Servletcontext

       今天聊聊Session,Cookie,Servletcontext三者的區別,因爲概念是很容易混淆的!

       首先Session:會話,是保存在服務器端的,常用於登錄狀態的判定,之所以網站能夠辨析是A用戶還是B用戶在

問網站,全靠Session中的SessionID當作區分的標誌;當然由於Session是保存在服務器端,因此安全性相對還是

比較高的,也常用在驗證碼等功能模塊;它的生命週期默認是24分鐘,注意:這裏的24分鐘是指發呆時間,也就是說

24分鐘內沒有操作,那麼算過期,反之只要你在第23分鐘操作了一下網站,那麼24分鐘又會重新計時,當然可以通過

修改配置文件延長時間;

       然後Cookie:是保存在客戶端的,準確的說,是保存在本地機器的某個瀏覽器上,也就是說Chrome瀏覽器保存

Cookie信息,即使是本機的Firefox瀏覽器,也是無法讀取到的;由於Cookie是保存在用戶的機器上,因此安全性相

Session就會低一些,因此常用在記住用戶名的功能上;當然,它最重要的用途有兩個:1. 瀏覽歷史的記錄,爲什

麼我們沒有登錄淘寶,京東,可惜那兩個網站都能知道我們訪問了哪些商品,還能夠給我們推薦商品呢?其實這全都

Cookie的功勞,它能夠記錄我們的訪問頁面,當我們再請求該網站時,會在HTTP請求中帶上我們的Cookie信息;

2. 配合SessionID,其實剛剛談到了Session能夠幫助網站區分是哪個用戶在瀏覽網站,這是怎麼做到的呢?其實,這

利用Cookie將SessionID存儲在本機瀏覽器,然後系統將Cookie中的SessionID和服務器端的SessionID進行比較,

從而能夠判斷用戶登錄狀態;它要是沒有設置生命週期,則瀏覽器關閉時,Cookie自動被銷燬

       接着Servletcontext:首先它是保存在服務器端的,它是用作數據共享的,無論是A電腦,還是B電腦去訪問這個

量裏面的數據,得到的結果都是一樣的,因此常用在網站記錄“多少人同時在線”,“頁面被訪問了多少次”等等計數;

而且它用途遠遠不止這些,還有就是讀取配置文件properties信息等,默認生命週期是:Web應用被啓動時,它就被創

建了,然後重啓Tomcat或者服務被關閉時,它就被銷燬了,存儲的數據就消失了。

       相信大家對於JAVA中,這三者的關係與區別有了一個全新的認識,下次我們再深入講解一些具體應用!

        大家可以關注我的微信公衆號:iwork,我會每天推送一篇原創文章,讓大家都能有所收穫!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章