一、session與application
1、session的關系圖
顯示session的ID
代碼如下:
1、先創建一個t1.jsp頁面,創建一個session,設置鍵和值
2、然后另外創建一個t2.jsp頁面,獲取t1.jsp中session的值
還可以重新賦值給session
總結:
客戶端的session 其實是標記了你的請求來自哪個瀏覽器
問題1:永遠都一樣嗎?
答:重啟了瀏覽器,你的session id就改變了,
結果會導致,再無法取回原來在服務端保存的數據。
問題2:假設客戶端的session id不變(瀏覽器不重啟),
那么服務器會一直保存這個session的數據嗎?
答:服務端(tomcat)如果20分鍾,沒有人動,
那么這個session就自動銷毀。
Session的應用場景:一般而言,就是用於記錄你的登錄信息
2、application
application的關系圖
代碼:
與session基本一致
1、先創建一個a1.jsp頁面,在創建一個application,並設置鍵和值
2、然后另外創建一個ta2.jsp頁面,獲取a1.jsp中application的值,
application的總結:
對於application在整個項目中,變量是有且只有1個,所有客戶端都共享同一個application對象。
人類社會,就是要解決資源的分配問題
那些應用場景是資源共享呢?
1、 搶火車票
2、 抽獎
3、 統計點擊次數
Session屬性和application的異同
1、 session和application、request 在配置屬性,代碼一樣的
2、 session對每一個用戶(瀏覽器)是單獨的,而application的所有用戶(瀏覽器)是共享的一個的。從使用角度來講,共享同1個變量會出現資源爭奪的沖突。(絕大部分時候都不用application的)
3、 session服務器默認只保存20分鍾(可以修改),而application會一直存在,直到tomcat關閉。