JavaBean 是可重用的 Java 元件,符合特定規範(如具備無參建構子、提供 getter/setter 方法、實作 Serializable 介面)。在 JSP 頁面中引入 JavaBean,能有效將業務邏輯與表現層分離,提升程式碼的可維護性與重用性。本文將透過具體範例,示範如何編寫、編譯、部署以及在 JSP 中呼叫 JavaBean。
首先建立一個名為 Hello.java 的類別,放置於套件 my 下:
package my;
public class Hello {
public String hello() {
return "hello";
}
}
此類別僅包含一個公開方法 hello(),回傳字串 "hello"。真實專案中,JavaBean 通常封裝資料庫操作、運算邏輯或外部服務呼叫等核心功能。
編譯後產生的 Hello.class 必須置於 Web 應用程式的 WEB-INF/classes 目錄下,並依套件結構建立對應子目錄:
my → WEB-INF/classes/my/Hello.classmy01.my02 → WEB-INF/classes/my01/my02/Hello.class這是 Servlet 容器(如 Tomcat)載入類別的標準約定,確保類別載入器能正確尋找到 JavaBean。
JSP 頁面可透過兩種方式使用 JavaBean:
<%
my.Hello h = new my.Hello();
out.println(h.hello());
%>
<%@ page import="my.Hello" %>
<%
Hello h = new Hello();
out.println(h.hello());
%>
第二種方式較為常見,程式碼較乾淨,尤其當同一頁面多次使用同一 JavaBean 時更顯優勢。
<jsp:useBean id="h" class="my.Hello" scope="page" />,配合 <jsp:getProperty> / <jsp:setProperty> 可進一步簡化操作,並支援多種作用域(page、request、session、application)。close() 方法或使用 try-with-resources,避免資源洩漏。scope="page" 每次請求建立新實例,較安全;若使用 session 或 application 作用域,需注意多執行緒同步問題。JavaBean 是 JSP 開發中實現「業務邏輯元件化」的基石。掌握其編寫、部署與呼叫流程,並善用 JSP 標準標籤與適當作用域,能顯著提升 Web 應用程式的架構品質與開發效率。