一、HttpSession域:
1.作用域范圍: 一次會話。 數據產生后,使用后,如果還需要繼續使用的情況下,HttpSession域
2.HttpSession作用: 在第一次調用request.getSession()方法時,服務器會檢查是否已經有對應的session。如果沒有,就在內存中創建一個session並返回。當一短時間內(默認30分鍾)session沒有被使 用,則服務器會銷毀該session。若服務器非正常關閉,未到期的session也會跟着銷毀。若調用session提供的invalidate()方法,可以立即銷毀session。
3.實現的過程原理:HttpSession在服務器中,為瀏覽器創建獨一無二的內存空間,在其中保存了會話相關的信息。服務器創建session出來后,會把session的id號,以cookie的形式回寫給客戶機,這樣,只要客戶機的瀏覽器不關,再去訪問服務器時,都 會帶着session的id號去,服務器發現客戶機瀏覽器帶session id過來了,就會使用內存中與之對應的session為之服務
二、ServletXContext域 (application域):
1.作用范圍: 整個web應用程序
2.ServletContext作用:由於一個web應用中的所有servlet共享同一個servletcontext對象,所以多個servlet通過servletcontext對象實現了數據在不同servlet之間的共享。
a.所有jsp、servlet可以訪問的到
b.使用ServletContext接口可以直接訪問web應用中靜態資源文檔結構
注意:由於servletcontext域可使整個web應用共享該數據,因此而帶來“線程安全”問題同樣影響對轉發的數據,故而需要使用request域。
三、ServletRequest域
1.ServletRequset作用范圍:整個請求鏈(轉發也包括)
2.ServletRequest作用:數據只用一次。 Servlet中處理好的數據交給JSP顯示,參數可以放在ServletRequest域中帶過去
方法有很多: 獲取客戶機信息、 獲取請求頭信息、獲取請求參數等等特別多方法
3. 使用原理:在service方法調用前由服務器創建,傳入service方法。整個請求結束,request生命結束。
四、PageContext域
1.PageContext作用范圍: 整個JSP頁面
2. PageContext作用:
1.可以獲取其它八大隱式對象,可以認為它是一個入口對象
2.獲取其它所有域中的數據
3.跳轉到其它資源。提供了forward 和 sendRedirect方法,簡化了轉發和重定向的操作
pageContext對象,這個對象代表頁面上下文,該對象主要用於訪問JSP之間的共享數據。當對JSP的請求時開始,當響應結束時銷毀。