requests和session的區別

來源:互聯網
上載者:User

標籤:返回   request對象   擷取參數   col   ssi   使用者   全域   response   com   

簡單說 request對象和session對象的最大區別是生命週期。-request

request對象的生命週期是針對一個用戶端(說確切點就是一個瀏覽器應用程式)的一次請求,當請求完畢之後,request裡邊的內容就會被釋放 。

簡單說就是你在頁面上的一個操作,request.getParameter()就是從上一個頁面中的url、form中擷取參數。

但如果一個request涉及多個類,後面還要取參數,可以用request.setAttribute()和request.getAttribute()。

但是當結果輸出之後,request就結束了。 

-session

session可以跨越很多頁面。

而session的生命週期也是針對一個用戶端,但是卻是在別人設定的會話周期內(一般是20-30分鐘),session裡邊的內容將一直存在,即便關閉了這個用戶端瀏覽器 session也不一定會馬上釋放掉的。

可以理解是用戶端同一個IE視窗發出的多個請求。

這之間都可以傳遞參數,比如很多網站的使用者登入都用到了。

 

-比較

request佔用資源比較少,安全性也比較高,可是相對來說缺乏持久性。

session則相對來說對資源的消耗會大點,安全性相對來說也會稍微低點,可是它能實現比如會話跟蹤技術。

如果可以使用request的情況下,盡量使用request 因為相對於伺服器來說資源的消耗還是比較重要的。


在傳遞頁面過程中request傳遞到下一頁面就不能再傳遞了,而sesison卻不如此,即request僅限於2個相鄰的頁面

每按一個網頁上的一個連結就是一個新的request,當伺服器返回給瀏覽器一個response時,request就結束了,此時儲存在request中的對象就不存在了,

但是當你用一個瀏器連到伺服器上時application-server會新開一個session給你,當連線逾時或瀏覽器關閉時session才銷毀。

所以session可以跟蹤使用者的狀態。


session相當於是一個用戶端的全域變數,

比如A機與伺服器第一次訪問時設定session.setAttribute("aaa")="ComputerA".則在A機繼續訪問的任意一個頁面都可以取的session.getAttribute("aaa")的值是ComputerA;  
    
request是某一次訪問的局域變數,

生命週期只是一次請求。因此login的變數應該放在session中

requests和session的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.