session與request作用範圍

2022-03-04 15:01:08 字數 4245 閱讀 9111

1樓:匿名使用者

session是在伺服器端建立的,瀏覽器訪問伺服器會有乙個jsessionid,瀏覽器端通過jsessionid定位伺服器端的session,session的建立和銷毀由伺服器端控制。當瀏覽器關閉後,session還存在在伺服器端,只不過你新開的瀏覽器去訪問伺服器會建立另乙個session,這個時候的jsessionid已經不一樣了。也就不能訪問上一次的哪個session裡面的內容了。

那伺服器端session如何建的呢? 普通htm不會建立,jsp預設是建立的,只要你訪問乙個任何乙個jsp就會建立(不過只建立一次),你關閉瀏覽器從新訪問又會建立乙個,這些建立的session由伺服器自己控制銷毀,你也可以在伺服器端**中銷毀。

session其實簡單:

先request.getsession(),當已有乙個session與前request相關時就返回對這個session的引用,當沒有時就生成乙個.乙個session在server通過乙個sessionid來標識的。

也就是說在乙個server是不會有兩個相同sessionid的session.

那麼session為什麼會和cookie扯在一起呢?

正如我所說對於乙個session來說它的sessionid就是其身份的標識。若我們將這個sessionid儲存到使用者端,當同乙個會話的後序請求來時都將這個sessionid放在request 的header中(也就是我們說的cookie)這樣不就可以來驗證這個request是否與之前的request是同乙個會話了嗎!

什麼是會話呢?

我們可以通俗一點理解。只要你的browers不關我們就稱這一系列的request與response為乙個會話。一斷你close就稱這個會話已結束。

雖然會話結束但並不代表你的session就被destroy.因為session是存活在server上的。它的生命完全由server來主宰(web.

xml中的設定).

雖然你的session還存活在server上但你已無法再取得它。因為j2ee的api只給我們一種方法來取得與當前會話相關的session的引用:request.

getsession() or reqeust.getsession(boolean)

這也就是為會什麼會有"當瀏覽器關session就結束"這個錯誤的說法了!

深刻理解一下,

乙個常見的誤解是以為session在有客戶端訪問時就被建立,然而事實是直到某server端程式呼叫這樣的語句時才被建立,

注意如果jsp沒有顯示的使用 <%@page session="false"%> 關閉session,

則jsp檔案在編譯成servlet時將會自動加上這樣一條語句httpsession session = ;

這也是jsp中隱含的session物件的來歷。

2樓:匿名使用者

session長駐在伺服器記憶體裡,session有id標識,乙個session專供乙個使用者使用。

request只能存在於一次訪問裡,為了讓每次訪問區分開是哪個使用者,所以request中會帶上session的id標識,就是每個request都會屬於乙個session,乙個session能為很多次request服務。類似於資料庫的多對一關係

所以request.getsession的本質是使用request中的session id去找到這個使用者對應的session

3樓:匿名使用者

request是對應每個請求的,請求在頁面關閉或發生重定向時就會關閉。

session是對應每個使用者的,使用者可以發起多個請求,但只有乙個會話session, session可以設定超時時間,在此時間內對該訪問使用者都是有效的。

session的獲取是用request.getsession,因為每個請求肯定包含在對應的會話session中,而session中可能包含多個請求。

4樓:匿名使用者

request作用範圍是一次響應,session的範圍是一次會話。向伺服器發起一次請求,伺服器就會在這個request裡面查詢sessionid,如果有就返回這個對應的session,如果沒有就會根據情況處理

:request.getsession(true)如果沒有就建立乙個新的session物件,並返回

request.getsession(false)如果沒有就返回null

順便說下,伺服器建立的每個使用者的session的id都是唯一的。不存在重複情況

j**a中session和request的區別

5樓:蔡一超高手

request 和session的有什麼區別

乙個是在request裡面設定屬性

另外乙個是在session裡面設定屬性

最典型的區別是,request傳送到下乙個頁面之後,裡面的屬性就沒掉了

不能再傳遞到下乙個頁面

而session會把這個attribute hold住一段時間

然後時間到了以後釋放

2.你說的是sql語句吧?不同資料庫有不同的分頁方式

建議你用hibernate,方言dialect這個屬性很好地封裝了這些區別

1.乙個是在request裡面設定屬性

另外乙個是在session裡面設定屬性,request裡保留的值,傳到下個頁,就會自動失效!,而session 則不同,他的乙個會話期差不多有20分中,,就是說他保留的值有20分中的有效期!!!

2.top 幾,就是查詢按條件的前幾條記錄!!

6樓:

說簡單點 request物件和session物件的最大區別是生命週期

request物件的生命週期是針對乙個客戶端(說確切點就是乙個瀏覽器應用程式)的一起請求 當請求完畢之後,request裡邊的內容也將被釋放點

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

request和session的優點和缺點很明顯

request占用資源比較少 安全性也比較高 可是相對來說 缺乏持續性

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

不過 個人覺得 如果可以使用request的情況下 盡量使用request 因為相對於伺服器來說 資源的消耗這個問題還是比較重要的

7樓:

上樓都說的很對!但還漏掉了乙個重要的一點!

request的作用域範圍只在兩個相鄰頁面起作用,而在三個或三個以上的頁面就不行!要用session

session的作用域比request的強!

request物件和session物件session的生命週期長

8樓:匿名使用者

request 指在一次請求的全過程中有效,即從http請求到伺服器處理結束,返回響應的整個過程,存放在httpservletrequest物件中。在這個過程中可以使用forward方式跳轉多個jsp。在這些頁面裡你都可以使用這個變數。

request是使用者請求訪問的當前元件,以及和當前web元件共享同一使用者請求的web元件。如:被請求的jsp頁面和該頁面用指令包含的頁面以及標記包含的其它jsp頁面;

session是使用者全域性變數,在整個會話期間都有效。只要頁面不關閉就一直有效(或者直到使用者一直未活動導致會話過期,預設session過期時間為30分鐘,或呼叫httpsession的invalidate()方法)。存放在httpsession物件中 ,同乙個http會話中的web元件共享它。

j**a 中 cookie 、session跟request 的具體區別跟作用域 。求解啊!!

9樓:

session 會話你可以設定他的時間 預設的是30分鐘 當你關閉瀏覽器 結束本次會話 使用者開始進行操作就產生乙個唯一的session 每個session都分配了乙個唯一的id

request是獲取資訊--通過使用者提交的表單,查詢字串,cookie等獲得資訊

session是服務端用來儲存一些資料(通常是標記狀態的,當然也可以儲存別的)

session是服務端的記錄變數,可以跟蹤記錄訪問者動作,比如登入,退出等.

request用在資料提交,表單資料等

cookie 的話它可以儲存在客戶端 它有乙個有效期 你也可以設定時間 如乙個月 一年等

hibernate中session什麼意思

一.主配置 查詢快取,同下面講的快取不太一樣,它是針對hql語句的快取,即完全一樣的語句再次執行時可以利用快取資料。但是,查詢快取在乙個交易系統 資料變更頻繁,查詢條件相同的機率並不大 中可能會起反作用 它會白白耗費大量的系統資源但卻難以派上用場。fetch size,同jdbc的相關引數作用類似,...

cookies和session是什麼

iceer的寶箱 cookies和session的關係1。cookie是一種傳送到客戶瀏覽器的文字串控制代碼,並儲存在客戶機硬碟上,可以用來在某個web站點會話之間持久地保持資料。request和response物件都有 一組cookie。request.cookie集合是一系列cookie,從客戶...

request和response又什麼區別

request 是請求,而response僅指對某人的迴應 短語request code 申請號 申請碼 請求 請求碼 request payment 請求付款 申請支付 要求付款 哀求付款 client request 客戶請求 客戶端請求 客戶端懇求 使用者請求 response time 反應...