在 JSP 開發中,內置對象與作用域是兩個核心概念,掌握它們能讓我們更高效地處理請求、會話與應用層級的數據共享。本文將系統梳理 JSP 的九大內置對象及四大作用域,幫助開發者建立清晰的知識體系。
JSP 容器在轉譯 JSP 頁面為 Servlet 時,會自動提供以下九個內置對象,開發者無需實例化即可直接使用:
HttpServletRequest 實例,封裝客戶端請求信息,作用域為請求級。HttpServletResponse 實例,用於構建回應輸出,作用域為頁面級。HttpSession 實例,管理用戶會話狀態,作用域為會話級。ServletContext 實例,代表整個 Web 應用上下文,作用域為應用級。JspWriter 實例,負責向客戶端輸出字符流。PageContext 實例,提供對頁面屬性的訪問及其他內置對象的引用。ServletConfig 實例,獲取 Servlet 初始化參數。this),類型為 Object。Throwable 實例,僅在錯誤頁面(isErrorPage="true")中可用,封裝拋出的異常。
作用域決定了數據的可見範圍與生命週期,JSP 提供四個層級:
| 作用域 | 對應對象 | 生命週期 | 典型應用場景 |
|---|---|---|---|
| page(頁面) | pageContext | 當前頁面請求結束 | 頁面內臨時數據傳遞,如標籤庫間共享變量 |
| request(請求) | request | 一次 HTTP 請求結束 | 請求轉發(forward)時傳遞數據 |
| session(會話) | session | 用戶會話有效期內 | 用戶登錄狀態、購物車等跨請求數據 |
| application(應用) | application | Web 應用啟動至關閉 | 全局配置、緩存數據、線程共享資源 |

理解這些核心概念,能讓你在 JSP/Servlet 開發中遊刃有餘,構建高性能、易維護的 Web 應用。