JSP 九大隱式物件分類
JSP 隱式物件為 Web 容器載入的類別實例,可直接在 JSP 頁面使用,分四大類:
1. 輸入輸出物件
- request: 客戶端請求資訊,常用
setContentType()、sendRedirect()
- response: 伺服器回應
- out: 向客戶端輸出文字內容,型別
JspWriter,具緩衝功能,可透過 page 指令 buffer 屬性調整
2. 作用域通訊物件
- session: 使用者會話狀態,識別用戶、保存追蹤狀態
- application: 整個應用程式範圍,所有客戶端共享,伺服器啟動到關閉存活
- pageContext: 封裝目前 JSP 頁面執行資訊,提供存取其他隱式物件方法,管理四大作用域屬性
3. Servlet 物件
- page: 頁面本身,
java.lang.Object 實例
- config: Servlet 初始化參數,
ServletConfig 介面實例
4. 錯誤物件
- exception: 處理頁面錯誤,
printStackTrace() 顯示堆疊追蹤
pageContext 核心功能
- 統一管理四大作用域屬性:
setAttribute(name, value, scope)、getAttribute(name, scope)
- 作用域常數:
PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
- 簡化轉向與包含:
forward()、include() 方法
MVC 設計模式在 JSP 中的應用
Model 1:JSP + JavaBean
- JSP 處理請求與回應
- 流程:瀏覽器 → JSP → JavaBean → 資料庫 → JSP → 瀏覽器
- 優點:小型專案快速開發、技術門檻低
- 缺點:Java 與 HTML 混雜,後期維護困難
Model 2:MVC(Servlet + JSP)
- JSP 負責表示層,Servlet 處理控制邏輯
- 流程:瀏覽器 → Servlet → JavaBean → 資料庫 → Servlet 選擇 JSP → JSP 顯示 → 瀏覽器
- 優點:商業邏輯與顯示分離、適合大型團隊協作
- 缺點:開發難度提高、技術要求提升
注意: Web 環境無法完全實現真正 MVC 的「狀態改變通知」,Model 2 屬於 Web MVC 變體。