JavaBean 的基本概念
JavaBean 是一种符合特定规范的 Java 类,通常用于封装数据。其核心规范包括:
- 类必须为公共类(
public),并提供无参构造方法。 - 属性通过
private修饰,并通过公共的getter和setter方法访问。 - 可序列化(实现
Serializable接口),但不是强制要求。
示例代码:
public class User implements Serializable { private String name; private int age; 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; } }EL 表达式的作用
EL(Expression Language)是 JSP 中简化数据访问的表达式语言,主要用于:
- 访问 JavaBean 属性、集合、请求参数等。
- 支持算术、逻辑和关系运算。
- 简化 JSP 页面中的 Java 代码嵌入。
基本语法:
- 访问属性:
${对象名.属性名}(实际调用getter方法)。 - 示例:
${user.name}会调用user.getName()。
JavaBean 与 EL 的配合使用
在 JSP 中,JavaBean 通常通过jsp:useBean标签或 Servlet 设置到作用域(如request、session),再通过 EL 表达式访问:
- Servlet 中设置 JavaBean
User user = new User(); user.setName("Alice"); request.setAttribute("user", user); // 存入 request 作用域- JSP 中通过 EL 访问
<p>用户名:${user.name}</p> <p>年龄:${user.age}</p>EL 表达式的隐式对象
EL 提供内置对象简化数据访问,例如:
pageScope、requestScope、sessionScope、applicationScope:访问不同作用域属性。param、paramValues:获取请求参数。header、headerValues:获取请求头信息。
示例:
${requestScope.user.name} ${param.id} // 获取请求参数 id注意事项
- 属性名必须与
getter/setter方法对应。例如属性name对应getName()。 - 如果 EL 表达式无法解析(如属性不存在),默认输出空字符串而非报错。
- 可通过
${empty obj}判断对象是否为null或空集合。
通过结合 JavaBean 和 EL 表达式,可以高效地实现数据展示与逻辑分离,提升 JSP 的可维护性。