教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

什么是Session技術(shù)?Session用戶信息儲(chǔ)存過程?

更新時(shí)間:2021年07月22日16時(shí)40分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

當(dāng)我們?nèi)メt(yī)院就診時(shí),醫(yī)院都會(huì)給就診病人發(fā)放就醫(yī)卡,卡上只有卡號(hào),而沒有其它信息。但病人每次去該醫(yī)院就診時(shí),只要出示就醫(yī)卡,醫(yī)務(wù)人員便可根據(jù)卡號(hào)查詢到病人的就診信息。Session技術(shù)就好比醫(yī)院發(fā)放給病人的就醫(yī)卡和醫(yī)院為每個(gè)病人保留病例檔案的過程。當(dāng)瀏覽器訪問Web服務(wù)器時(shí),Servlet容器就會(huì)創(chuàng)建一個(gè)Session對(duì)象和ID屬性,其中,Session對(duì)象就相當(dāng)于病歷檔案,ID就相當(dāng)于就醫(yī)卡號(hào)。當(dāng)客戶端后續(xù)訪問服務(wù)器時(shí),只要將標(biāo)識(shí)號(hào)傳遞給服務(wù)器,服務(wù)器就能判斷出該請(qǐng)求是哪個(gè)客戶端發(fā)送的,從而選擇與之對(duì)應(yīng)的Session對(duì)象為其服務(wù)。

需要注意的是,由于客戶端需要接收、記錄和回送Session對(duì)象的ID,因此,通常情況下,Session是借助Cookie技術(shù)來(lái)傳遞ID屬性的。

為了大家更好的理解Session,接下來(lái),以網(wǎng)站購(gòu)物為例,通過一張圖來(lái)描述Session保存用戶信息的原理,具體如圖1所示。

1626942154201_什么是Session.jpg

圖1 Session保存用戶信息的過程

在圖1中,用戶甲和乙都調(diào)用buyServlet將商品添加到購(gòu)物車,調(diào)用payServlet進(jìn)行商品結(jié)算。由于甲和乙購(gòu)買商品的過程類似,在此,以用戶甲為例進(jìn)行詳細(xì)說(shuō)明。當(dāng)用戶甲訪問購(gòu)物網(wǎng)站時(shí),服務(wù)器為甲創(chuàng)建了一個(gè)Session對(duì)象(相當(dāng)于購(gòu)物車)。當(dāng)甲將Nokia手機(jī)添加到購(gòu)物車時(shí),Nokia手機(jī)的信息便存放到了Session對(duì)象中。同時(shí),服務(wù)器將Session對(duì)象的ID屬性以Cookie (Set-Cookie: JsessionID=111)的形式返回給甲的瀏覽器。當(dāng)甲完成購(gòu)物進(jìn)行結(jié)賬時(shí),需要向服務(wù)器發(fā)送結(jié)賬請(qǐng)求,這時(shí),瀏覽器自動(dòng)在請(qǐng)求消息頭中將Cookie (Cookie: JsessionID=111)信息回送給服務(wù)器,服務(wù)器根據(jù)ID屬性找到為用戶甲所創(chuàng)建的Session對(duì)象,并將Session對(duì)象中所存放的Nokia手機(jī)信息取出進(jìn)行結(jié)算。




猜你喜歡:

為什么禁用cookie后session也不能用了?怎么解決?

Localstorage、sessionStorage、cookie三者有什么區(qū)別?

Hibernate中如何獲取與線程綁定的session源碼解析

傳智教育java開發(fā)高手班

0 分享到:
和我們?cè)诰€交談!