| 術語 | 定義 | 典型場景 |
| VO (Value Object) | 純資料載體,僅含屬性與存取器,無業務邏輯 | DTO、表單回傳、API 響應 |
| POJO (Plain Old Java Object) | 無框架強制繼承/介面的普通 Java 物件 | Spring Bean、JPA Entity、Service |
| TO (Transfer Object) | 實現 Serializable 的 VO,用於跨進程/網路傳輸 | RMI、EJB 遠端調用、Session 複製 |
實務中常互換使用,**本質皆為「資料封裝類」**。
第一個 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 中使用三步驟
- 實例化:
<jsp:useBean id="simple" class="javabean01.SimpleBean" scope="page"/>
- 設定屬性:
<jsp:setProperty name="simple" property="*" /> (自動映射請求參數)
- 讀取輸出:
<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。
- 上一篇文章: JSP 頁面背景圖片自適應技巧:CSS repeat-x 實現漸變條無限平鋪
- 下一篇文章: JavaBean 入門(二):表單資料自動綁定與請求參數映射實戰
Copyright ©
程式碼之家 All Rights Reserved