JavaBean 是基於 Java 的可重用軟體元件,JSP 為在 Web 應用程式中整合 JavaBean 提供了完善的支援。這不僅能縮短開發時間——開發者可直接利用經測試、可信任的現有元件,避免重複造輪子——也為 JSP 應用帶來更強的可擴展性。
JavaBean 元件可用於執行複雜的計算任務、負責資料庫交互與資料提取等。假設我們有三個 JavaBean,分別具備顯示新聞、股票價格、天氣資訊的功能,要建立一個包含這三種功能的網頁,只需實例化這三個 Bean,再用 HTML 表格依次定位即可輕鬆完成。
為示範 JSP 環境下 JavaBean 的應用,我們建立一個名為 TaxRate 的 Bean。它擁有兩個屬性:Product(產品)與 Rate(稅率),並提供對應的 setter/getter 方法。實務上此類 Bean 通常從資料庫讀取稅率,此處為簡化示範,允許任意設定稅率值。
package tax;
public class TaxRate {
String Product;
double Rate;
public TaxRate() {
this.Product = "A001";
this.Rate = 5;
}
public void setProduct(String ProductName) {
this.Product = ProductName;
}
public String getProduct() {
return this.Product;
}
public void setRate(double rateValue) {
this.Rate = rateValue;
}
public double getRate() {
return this.Rate;
}
}
引用上述 Bean 需使用 <jsp:useBean> 標籤。具體配置方式視 JSP 引擎而異,本範例將 Bean 的 .class 檔案放置於 c:\.0INF\tax 目錄下(tax 為專屬套件目錄)。以下是應用該 Bean 的示範頁面:
<HTML>
<BODY>
<%@ page language="java" %>
<jsp:useBean id="taxbean" scope="application" class="tax.TaxRate" />
<%
taxbean.setProduct("A002");
taxbean.setRate(17);
%>
使用方法 1:<p>
產品 : <%= taxbean.getProduct() %> <br>
稅率 : <%= taxbean.getRate() %>
<p>
<%
taxbean.setProduct("A003");
taxbean.setRate(3);
%>
<b> 使用方法 2 : </b> <p>
產品 : <jsp:getProperty name="taxbean" property="Product" />
<br>
稅率 : <jsp:getProperty name="taxbean" property="Rate" />
</BODY>
</HTML>
此範例同時展示了兩種取得屬性值的方式:一是直接呼叫 getter 方法(<%= taxbean.getProduct() %>),二是使用 <jsp:getProperty> 標籤,其 name 對應 useBean 的 id,property 指定屬性名稱。
事實證明,Java Servlet 是開發 Web 應用的理想架構。JSP 以 Servlet 技術為基礎,並在多方面加以改良。JSP 頁面外觀如同普通 HTML,卻允許嵌入執行程式碼,這點與 ASP 技術相似。憑藉跨平台的 JavaBean 元件,JSP 為分離商業邏輯與呈現樣式提供了優越方案,勢必成為 ASP 技術的強力競爭者。