日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Session的工作原理

發布時間:2023/12/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Session的工作原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

session是服務器端的一個集合,可以存儲任何東西。session最重要的特性,是可以識別客戶。

1.Session的工作原理

當我們的Servlet需要使用Session時,執行下面的代碼

HttpSession session = request.getSession();//取出session session.setAttribute("goods1","Scoat");//session存數據 session.getAttribute("goods1");//session取數據

如果是第一次取session,服務器會創建一個session對象(session本身是一個map集合),并且存入服務器的session集合中以sessionId為標識鍵,也就是根據sessionId即可取到對應session的引用。同時使用session Servlet還獲得了一個sessionId,在響應時把這個sessionId以cookie的形式發給了客戶端。如果客戶訪問其它同一域的Servlet,這個sessionId會跟著請求上傳到服務器。那么如果請求的另一個Servlet也要使用session,會先檢查有沒有這個保存sessionId的Cookie,如果有則直接到session集合中取對應的session引用返回給要使用的Servlet,所以,只要客戶端存在這個sessionId,不管請求哪個Servlet,都可以拿到同一個session。所以Session就可以給不同的請求存儲數據。

2.Session過期

要保證session能夠跨請求存儲數據必須保證下面兩個條件必須滿足

(1).客戶瀏覽器不能關閉

因為session會給客戶保存一個sessionId,這個id是作為臨時cookie存在客戶瀏覽器緩存當中,如果關閉瀏覽器,緩存就沒了,sessionId自然也就消失了。重新打開瀏覽再請求,就是一個全新的請求,服務器會創建一個新的session,之前的session就沒法用了。

(2).請求不能超過session的過期時間

服務器的session如果始終沒有使用,保留著就是浪費服務器的資源,所以服務器會定期檢查session的最后訪問時間,如果這個時間超出session設置的過期時間,服務器就會銷毀這個session,那么客戶端即使把sessionId又傳上來,服務器也找不到它的session了,只會再重新創建一個新的session。

3.Session生命周期的操作方法

session.setMaxInactiveInterval(20 * ?60);//設置session過期時間 session.invalidate();//銷毀session的方法 session.getCreationTime();//獲得session的創建時間 session.getLastAccessedTime();//獲得session最后一次被使用的時間

總結

以上是生活随笔為你收集整理的Session的工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。