首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 四大作用域對象詳解(一):page 與 request 域屬性生命周期對比

     編輯:關於JSP

JSP 四大作用域對象(page、request、session、application)雖擁有相同的屬性操作 API,但其屬性可見範圍與生命周期截然不同。本文重點剖析 page 與 request 域的區別與應用場景。

什麼是屬性作用域?

四大作用域範圍示意圖

屬性作用域決定了 setAttribute 存放的數據能被哪些組件訪問、存活多久。

1. page 域(PageContext)

  • 範圍:僅當前 JSP 頁面內有效。
  • 生命周期:頁面執行開始 → 頁面執行結束(響應發送完畢)。
  • 典型場景:頁面內臨時變量傳遞、標簽庫開發中數據交換。
  • 獲取方式:pageContext.setAttribute("key", val) 或直接 pageScope.key (EL)。

2. request 域

  • 範圍:同一請求鏈路內有效(包含請求轉發的目標頁面)。
  • 生命周期:請求到達 → 響應發送完畢(含 forward 過程)。
  • 典型場景:Controller 處理完業務,設置數據,forward 到 JSP 展示(MVC 標準模式)。
  • 獲取方式:request.setAttribute("key", val) 或 requestScope.key (EL)。

對比實戰

<!-- pageContext_01.jsp -->
<% pageContext.setAttribute("pageMsg", "page域數據"); %>
<% request.setAttribute("reqMsg", "request域數據"); %>
<jsp:forward page="pageContext_02.jsp" />

<!-- pageContext_02.jsp -->
page域:${pageScope.pageMsg} <!-- 為空,page域隨forward失效 -->
request域:${requestScope.reqMsg} <!-- 可獲取,request域跨forward保留 -->

核心結論

  • page 域:極短命,僅頁面內部臨時使用。
  • request 域:請求級,支撐 MVC 中 Controller→View 數據傳遞的核心機制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved