JSP中四個域

2021-06-28 19:57:45 字數 1448 閱讀 1887

再解析這個四個域之前,不得不談一下伺服器的原理,我在

web伺服器那篇筆記當中沒有系統的說一下伺服器的作用:

參考j2ee書本 73頁內容

伺服器要為乙個請求單獨開啟乙個執行緒。通過io流來獲取和返回資料。還要解析使用者請求,生成響應資料。

jsp中是通過servlet _jspservice();方法完成解析引數,處理請求,生成響應資料。伺服器則完成前面和後面的多執行緒,網路通訊等功能。

所以jspservice()需要 httpservletrequest 和httpservletresponse引數

但是jsp如何和servlet進行互動呢

為了解決這個問題,所有的伺服器,都會提供乙個map結構:

就是這四大天王,四個域。我們把資料放到四個域中,就可以在伺服器後台裡交換資料了。但是範圍不同。

時間最久,範圍最大的乙個,它具體是指整個web應用範圍,

老二是session

session:http會話開始到結束這段時間。session 的作用範圍為一段使用者持續和伺服器所連線的時間,但與服務 器斷線 ,這個屬性就無效。只要將資料存入session物件,資料的範圍就為session;

session是通過httpsession介面實現的,它提供的主要方法如下所示。

object httpsession.getattribute(string name):從session中獲取資訊。

void httpsession.setattribute(string name, object value):向session中儲存資訊。

httpsession httpservletrequest.getsessio():獲取當前請求所在的session的物件。

session的開始時刻比較容易判斷,它從瀏覽器發出第乙個http請求即可認為會話開始。但結束時刻就不好判斷了,因為瀏覽器關閉時並不會通知伺服器,所以只能通過如下這種方法判斷:如果一定的時間內客戶端沒有反應,則認為會話結束。tomcat的預設值為30分鐘,配置檔案web.xml指出,但這個值也可以通過httpsession的setmaxinactiveinterval()方法來設定:

session機制通常是用來儲存客戶端的狀態資訊,狀態資訊需要儲存到伺服器的硬碟上,所以session的值必須要是可序列化的,否則將發生不可序列化的異常。 

關於session 和cookie session cookie機制中詳細解釋

request

老三httprequest :作用範圍, 請求到請求結束,多用於servlet之間的通訊,傳遞訊息,請求完就結束了。常常用到requestdispatcher 的forward方法,**請求。

page:

小弟,為什麼page比request還小呢,他們有什麼區別。其實呢,page和request的生命週期都很短。但是乙個request可以包括多個page頁面。包括動態include filter forward 

關於struts2

jsp中四個作用域

jsp中的四個作用域 jsp內建物件作用域表 名稱作用域 在所有應用程式中有效 session 在當前會話中有效 request 在當前請求中有效 page 在當前頁面有效 首先要宣告一點,所謂 作用域 就是 資訊共享的範圍 也就是說乙個資訊能夠在多大的範圍內有效。web互動的最基本單位為http請...

jsp中四個域物件

jsp中四大域物件 1 session session域,只能在同乙個session會話中使用 私有 2 request request域,只能在同乙個請求中使用 發 4 pagecontext page域,只能在在當前jsp頁面中使用。域物件的作用 儲存資料和獲取資料,用於資料共享 兩個web元件...

JSP中四個域物件

pagecontext page域 request request域 session session域 context域 域物件作用 儲存資料 和 獲取資料 用於資料共享。域物件方法 setattribute name object 儲存資料 getattribute name 獲取資料 remov...