JSP 中的 JavaBeans

JSP 中的 JavaBeans 是遵循特定设计规范的 Java 类,本质是普通的 Java POJO(Plain Old Java Object),用于封装业务数据(如用户信息、订单信息),实现数据与页面逻辑的分离,是 JSP 中实现 “数据封装 - 复用” 的核心组件。

JavaBeans 必须遵循的规范:

  1. 类必须是公共的public),且有无参构造方法(默认或手动定义);

  2. 成员变量(属性)私有化(private);

  3. 提供公共的

    1
    getter/setter

    方法:

    • getXxx():读取属性xxx(布尔类型可简化为isXxx());
    • setXxx():设置属性xxx
  4. 可选实现java.io.Serializable接口(支持序列化,便于数据传输 / 持久化)。

示例(标准 JavaBean):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.example;

import java.io.Serializable;

// 封装用户信息的JavaBean
public class User implements Serializable {
// 私有成员变量
private String username;
private int age;

// 无参构造方法
public User() {}

// getter/setter
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

JSP 中使用 JavaBeans 的核心方式:

通过<jsp:useBean><jsp:setProperty><jsp:getProperty>动作标签操作,或直接通过 EL 访问:

1
2
3
4
5
6
7
8
9
10
<%-- 1. 创建/查找User实例(作用域为page)--%>
<jsp:useBean id="user" class="com.example.User" scope="page"/>

<%-- 2. 设置属性(手动赋值或绑定请求参数)--%>
<jsp:setProperty name="user" property="username" value="张三"/>
<jsp:setProperty name="user" property="age" param="age"/> <%-- 绑定请求参数age --%>

<%-- 3. 获取属性(或用EL)--%>
<jsp:getProperty name="user" property="username"/>
${user.age}

核心作用:

  • 封装数据:将分散的请求参数、业务数据封装为对象,便于传递和复用;
  • 解耦逻辑:JSP 页面只需关注数据展示,数据封装逻辑由 JavaBean 承担;
  • 配合 EL/JSTL:是 EL 读取数据的主要载体,实现 “无脚本” JSP 开发。