Request與Session的存值取值操作
Request與Session的存值取值
request域的存值:
request可以直接set進(jìn)去
request.setAttribute("request", value);
request域的取值有兩種方式:
"${request}"
------------
"${requestScope.request}"
或者想獲取key值中某一個valueBean對象
"${request.name}"
session域的存值:
session需要先get一下獲取session然后才能set進(jìn)去key,value值
request.getSession().setAttribute("session", value);
----------------------------------------------------
HttpSession session = request.getSession();
session.setAttribute("session", value);
session域的取值:
"${sessionScope.session}"
Request和Session的區(qū)別
說簡單點(diǎn) request對象和session對象的最大區(qū)別是生命周期。
request
request范圍較小一些,只是一個請求。
request對象的生命周期是針對一個客戶端(說確切點(diǎn)就是一個瀏覽器應(yīng)用程序)的一次請求,當(dāng)請求完畢之后,request里邊的內(nèi)容也將被釋放點(diǎn) 。
簡單說就是你在頁面上的一個操作,request.getParameter()就是從上一個頁面中的url、form中獲取參數(shù)。
但如果一個request涉及多個類,后面還要取參數(shù),可以用request.setAttribute()和request.getAttribute()。
但是當(dāng)結(jié)果輸出之后,request就結(jié)束了。
session
session可以跨越很多頁面。
而session的生命周期也是針對一個客戶端,但是卻是在別人設(shè)置的會話周期內(nèi)(一般是20-30分鐘),session里邊的內(nèi)容將一直存在,即便關(guān)閉了這個客戶端瀏覽器 session也不一定會馬上釋放掉的。
可以理解是客戶端同一個IE窗口發(fā)出的多個請求。
這之間都可以傳遞參數(shù),比如很多網(wǎng)站的用戶登錄都用到了。
比較
request占用資源比較少,安全性也比較高,可是相對來說缺乏持續(xù)性。
session則相對來說對資源的消耗會大點(diǎn),安全性相對來說也會稍微低點(diǎn),可是它能實現(xiàn)比如會話跟蹤技術(shù)。
如果可以使用request的情況下,盡量使用request 因為相對于服務(wù)器來說資源的消耗還是比較重要的。
在傳遞頁面過程中request傳遞到下一頁面就不能再傳遞了,而sesison卻不如此,即request僅限于2個相鄰的頁面
每按一個網(wǎng)頁上的一個鏈接就是一個新的request,當(dāng)服務(wù)器返回給瀏覽器一個response時,request就結(jié)束了,此時保存在request中的對象就不存在了,
但是當(dāng)你用一個瀏器連到服務(wù)器上時application-server會新開一個session給你,當(dāng)連接超時或瀏覽器關(guān)閉時session才銷毀。
所以說作用的范圍是不一樣,session也就可以跟蹤用戶的狀態(tài)。
session相當(dāng)于是一個客戶端的全局變量,
比如A機(jī)與服務(wù)器第一次訪問時設(shè)置session.setAttribute("aaa")="ComputerA".則在A機(jī)訪問繼續(xù)訪問的任意一個頁面都可以取的session.getAttribute("aaa")的值是ComputerA;
request是某一次訪問的局域變量,
生命周期只是一次請求。因此login的變量應(yīng)該放在session中
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用JavaFX工具構(gòu)建Reactive系統(tǒng)
這篇文章主要介紹了使用JavaFX構(gòu)建Reactive系統(tǒng),利用JavaFX工具集中的新的超棒特性來構(gòu)建響應(yīng)式的快速應(yīng)用程序,感興趣的小伙伴們可以參考一下2016-02-02
SpringBoot啟動之SpringApplication初始化詳解
這篇文章主要介紹了SpringBoot啟動之SpringApplication初始化詳解,首先初始化資源加載器,默認(rèn)為null;斷言判斷主要資源類不能為null,否則報錯,需要的朋友可以參考下2024-01-01
spring boot實戰(zhàn)之內(nèi)嵌容器tomcat配置
本篇文章主要介紹了Spring Boot 使用內(nèi)嵌的tomcat容器配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01

