session之此session非彼session

2021-06-20 01:17:08 字數 1011 閱讀 4570



此session非彼session之session理解

問題描述,在j2ee專案開發中我們常常用到session物件,乙個是struts2中的session,乙個是hibernate中session,那麼這些session有什麼區別呢?

技術核心:session是一種高效的、實用的快取機制,它是用作不同機制之間會話時產生的資料的一種快取策略,比如struts2中的session(這個session其實就是servlet中的session,沒什麼大的區別,只不過struts2執行緒安全(乙個執行緒乙個action),servlet執行緒不安全罷了(通用乙個servlet)),這個session是瀏覽器和j2ee應用程式互動時產生的一種會話快取機制(本質上是客戶端和伺服器互動會話機制

),這個session中存放少量使用者資訊用於後期使用。而hibernate中的session是應用程式和資料庫互動時產生的一種查詢快取策略機制(所謂的一級快取,當然也有二級快取),這個session是儲存的一些查詢資訊(比如你查了某個物件後不久,你又查詢它,那麼hibernate就直接從session中取出來,而不是從資料庫中去查詢了)。

總結:hibernate中session 是hibernate中的快取物件 用此session運算元據庫後會快取返回的結果在session裡面(一級快取) 當你再次運算元據庫的時候 如果session快取裡面有相應的值  則不用去與資料庫互動直接返回結果,

servlet 中的session 也是快取 其快取使用者客戶端與伺服器對話時候的一些資訊

總之可以看出來所有的session基本都是起快取作用的 就是把一些資訊快取在記憶體中 方便訪問值

但是不同的session是不能相互直接賦值的 因為是兩個不同的概念 只是名字一樣

名字一樣也是為了幫助程式設計師理解 學了servlet的session 後再遇到session也就應該是快取作用的。

最後:這個問題很高深,一般初學者都會混淆。。。。。

Session元件(增加和刪除Session物件)

using system using system.collections.generic using system.linq using system.text using system.web namespace abc public static class uisessionsmanager...

HTTP協議之Cookie和Session

http是無狀態協議,那麼服務端如何識別特定的客戶端呢?注 無狀態指http協議自身不對請求和響應之間的通訊狀態進行儲存。對傳送過的請求和響應都不做持久化處理 即不做任何儲存 每次http請求的時候,客戶端都會傳送相應的cookie資訊到服務端。實際上大多數的應用都是用cookie來實現sessio...

node學習之cookie和session

c什麼是cookie cookie設計的初衷是 維持瀏覽器和服務端的狀態。http是無狀態的,服務端不能跟蹤客戶端的狀態。瀏覽器第一次向伺服器傳送請求,伺服器會返回乙個cookie給客戶端瀏覽器,瀏覽器下一次傳送請求時,會攜帶cookie。而node.js 的框架express 因為保持高效能,沒有...