.java 檔,絕大多數為 public 類別。原理上使用 JavaBeans 只是引入特定規範的類別。簡單應用中,可直接在 JSP `<% %>` 程式碼片段中定義與實例化類別,犧牲可讀性與重用性但無語法障礙。
應用龐大時,遵循規範帶來的開發維護便利性,遠超過受到的約束。充分利用組件重用特性,提升程式碼可讀性與維護性。
許多參考資料提及 JavaBeans API 約定,但實務上**可依需求自訂 JavaBeans**,僅要求為 Java 類別。極端情況下,僅能用 `id 實例存取屬性與方法。開發者需清楚認識此類 Bean 可能缺乏標準 JavaBeans 特性。
<jsp:useBean> 必須定義三要素:
id:對應類別實例。存在則直接引用,不存在則依 class 實例化。class:實例化來源類別。scope:定義實例存在範圍,決定綁定區域與有效週期。| Scope | 說明 | 等價程式碼片段 |
|---|---|---|
page | 存在於該 JSP 及靜態包含檔,頁面執行完畢失效 | pageContext.get/setAttribute(id, PageContext.PAGE_SCOPE) |
request | 綁定於該請求,請求有效期間存活 | pageContext.get/setAttribute(id, PageContext.REQUEST_SCOPE) |
session | 綁定於 Session,本地端有效 | session.get/setAttribute(id) |
application | 綁定於 Application,整個應用有效 | application.get/setAttribute(id) |
理解這四種 Scope 的生命週期與可見性,是正確使用 JSP JavaBeans 的關鍵。