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

JavaBean 入門(一):核心概念、規範與基本使用模式

     編輯:關於JSP

什麼是 JavaBean?

**可重用軟體組件**,以 Java 類形式封裝業務邏輯/資料存取,讓 JSP 頁面專注於表示層。核心規範:

  1. 公共無參建構子:容器實例化必需。
  2. 屬性私有化:private 欄位 + getXxx()/setXxx() 存取器 (命名慣例)。
  3. 實現 Serializable:支援分散式部署、Session 複製、持久化。
  4. 無事件監聽要求:區別於早期 ActiveX/COM 組件模型。

為什麼要用 JavaBean?

核心術語辨析

痛點JavaBean 解決方案
JSP 混雜 JDBC 代碼,重複度高封裝資料存取邏輯於 Bean,JSP 僅調用
HTML 與 Java 代碼耦合,團隊協作難美工寫 JSP,工程師寫 Bean,介面契約清晰
業務邏輯分散,維護成本高集中於 Bean,單一職責、易測試、可重用

實務中常互換使用,**本質皆為「資料封裝類」**。

第一個 JavaBean:SimpleBean

package javabean01;

public class SimpleBean implements java.io.Serializable {
    private String name;
    private int age;

    public SimpleBean() {}  // 無參建構子

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

JSP 中使用三步驟

  1. 實例化:<jsp:useBean id="simple" class="javabean01.SimpleBean" scope="page"/>
  2. 設定屬性:<jsp:setProperty name="simple" property="*" /> (自動映射請求參數)
  3. 讀取輸出:<jsp:getProperty name="simple" property="name" /> 或 EL ${simple.name}

完整範例:表單提交 → Bean → 顯示

form.html

<form action="show.jsp" method="post">
  姓名:<input name="name"><br>
  年齡:<input name="age"><br>
  <input type="submit">
</form>

show.jsp

<%@ page contentType="text/html;charset=gbk" %>
<jsp:useBean id="simple" class="javabean01.SimpleBean" scope="request">
  <jsp:setProperty name="simple" property="*"/>
</jsp:useBean>
<html><body>
  <h3>姓名:<jsp:getProperty name="simple" property="name"/></h3>
  <h3>年齡:<jsp:getProperty name="simple" property="age"/></h3>
</body></html>

現代化演進:從 JavaBean 到 CDI/Spring Bean

  • @Named @RequestScoped (CDI) / @Component @RequestScope (Spring) 取代 jsp:useBean。
  • 依賴注入替代手工 setProperty,@Inject SimpleBean simple 即可使用。
  • 驗證框架整合:@Valid @NotNull @Size(min=6, max=15) 宣告式約束。
  • 資料傳輸物件 (DTO/VO) 改用 **Record (Java 16+)**:public record UserForm(String name, int age) {},不可變、自動生成存取器、equals/hashCode/toString。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
術語定義典型場景
VO (Value Object)純資料載體,僅含屬性與存取器,無業務邏輯DTO、表單回傳、API 響應
POJO (Plain Old Java Object)無框架強制繼承/介面的普通 Java 物件Spring Bean、JPA Entity、Service
TO (Transfer Object)實現 Serializable 的 VO,用於跨進程/網路傳輸RMI、EJB 遠端調用、Session 複製