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

JSP 中應用 JavaBean 完整教學:useBean、getProperty、setProperty 實戰

     編輯:J2EE

JavaBean 在 JSP 中的角色

JavaBean 是可重用的軟體元件,封裝業務邏輯與資料存取。JSP 透過標準動作標籤整合 JavaBean,實現「邏輯與顯示分離」,縮短開發週期,提升可維護性。

範例 Bean:TaxRate(稅率計算)

package tax;
public class TaxRate {
    private String product = "A001";
    private double rate = 5.0;
    
    public TaxRate() {} // 無參建構子必要
    
    public String getProduct() { return product; }
    public void setProduct(String product) { this.product = product; }
    
    public double getRate() { return rate; }
    public void setRate(double rate) { this.rate = rate; }
}

編譯後 TaxRate.class 放置於 WEB-INF/classes/tax/ 目錄。

核心標籤詳解

1. <jsp:useBean> —— 實例化與作用域宣告

<jsp:useBean id="taxbean" scope="application" class="tax.TaxRate" />
屬性說明
id頁面內唯一識別符,對應變數名
scopepage(預設)、request、session、application,決定生命週期與可見範圍
class完整類名(含套件)
type宣告型別(可為介面或父類),配合 class 或 beanName 使用

作用域選擇指南: 單次請求資料用 request;用戶會話資料用 session;全域共用資料(如配置、快取)用 application。

2. Scriptlet 方式設定/讀取屬性

<% 
    taxbean.setProduct("A002");
    taxbean.setRate(17);
%>
產品:<%= taxbean.getProduct() %><br/>
稅率:<%= taxbean.getRate() %>

優點:靈活,可執行任意邏輯。缺點:JSP 混入 Java 代碼,違反分離原則。

3. 標準動作標籤方式(推薦)

<jsp:setProperty name="taxbean" property="product" value="A003" />
<jsp:setProperty name="taxbean" property="rate" value="3" />

<b>使用標準標籤:</b><br/>
產品:<jsp:getProperty name="taxbean" property="product" /><br/>
稅率:<jsp:getProperty name="taxbean" property="rate" />
標籤屬性功能
jsp:setPropertyname(Bean id)、property(屬性名)、value(常值)、param(請求參數名)設定 Bean 屬性,支援自動型別轉換
jsp:getPropertyname、property輸出 Bean 屬性值,自動轉字串

進階用法: <jsp:setProperty name="taxbean" property="*" /> 自動將所有同名請求參數綁定至 Bean 屬性(表單處理神器)。

完整範例頁面

<html><body>
<%@ page language="java" %>
<jsp:useBean id="taxbean" scope="session" class="tax.TaxRate" />

<!-- 方式 1:Scriptlet --%>
<% taxbean.setProduct("A002"); taxbean.setRate(17); %>
<p>方式 1:<br/>
產品:<%= taxbean.getProduct() %><br/>
稅率:<%= taxbean.getRate() %></p>

<!-- 方式 2:標準標籤 --%>
<jsp:setProperty name="taxbean" property="product" value="A003" />
<jsp:setProperty name="taxbean" property="rate" value="3" />
<p><b>方式 2:</b><br/>
產品:<jsp:getProperty name="taxbean" property="product" /><br/>
稅率:<jsp:getProperty name="taxbean" property="rate" /></p>
</body></html>

最佳實踐與避坑指南

  1. 優先使用標準標籤:jsp:setProperty/getProperty 可讀性高、無 Scriptlet、支援自動型別轉換(String→double 等)。
  2. 正確選擇 scope:避免將請求級資料放入 application 造成記憶體洩漏;避免會話級 Bean 在 page scope 導致狀態不共享。
  3. Bean 必須符合規範:public 類、無參建構子、屬性提供 getter/setter、實作 Serializable(若需 session 複製/持久化)。
  4. 類路徑配置:WEB-INF/classes 自動掃描;JAR 放入 WEB-INF/lib;共享庫放 Tomcat lib。
  5. 避免在 JSP 中處理複雜業務邏輯:Bean 應封裝完整業務操作,JSP 僅負責參數綁定與結果顯示。

總結

JSP + JavaBean 是「Model 1」架構的基石。掌握 useBean 作用域語義、setProperty/getProperty 標準標籤用法、property="*" 自動綁定技巧,能以最小代價實現邏輯與視圖分離。現代框架(Spring MVC、Struts 2)本質上皆是此模式的擴展與規範化,理解核心機制有助於深度掌握框架原理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved