什么是JavaBean?
JavaBean是特殊的Java类,使用J ava语言书写,并且遵守JavaBean API规范。
JavaBean与其它Java类相比而言独一无二的特征:
- 提供一个默认的无参构造函数。
- 需要被序列化并且实现了Serializable接口。
- 可能有一系列可读写属性。
- 可能有一系列的"getter"或"setter"方法
序列化JavaBean
序列化:是将对象数据分解成字节流,写入字节流,以便存储在文件中。
反序列化:是打开字节流,从字节流中读取对象并重构对象
通过将数据库中的表与JavaBean组件形成映射关系可以实现JavaBean组件的持久化。但是由于关系型数据库与面向对象机制不同,为了方便存储JavaBean的某时状态,JavaBean规范了提供序列化机来通过文件系统存储JavaBean快照
JavaBean属性
一个JavaBean对象的属性应该是可访问的。这个属性可以是任意合法的Java数据类型,包括自定义Java类。
一个JavaBean对象的属性可以是可读写,或只读,或只写。JavaBean对象的属性通过JavaBean实现类中提供的两个方法来访问:
JavaBean 程序示例
public class StudentsBean implements java.io.Serializable { private String firstName ; private String lastName ; private int ;
private boolean isVip; public StudentsBean() { } public String getFirstName(){ return firstName; } public String getLastName(){ return lastName; } public int getAge(){ return age; } public void setFirstName(String firstName){ this.firstName = firstName; } public void setLastName(String lastName){ this.lastName = lastName; } public void setAge(int age) { this.age = age; }
public boolean isVip() {
return isVip;
}
public void setVip(boolean isVip){
this.isVip = isVip;
} }
访问JavaBean
<jsp:useBean> 标签可以在JSP中声明一个JavaBean,然后使用。声明后,JavaBean对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。<jsp:useBean>标签的语法格式如下:
<jsp:useBean id="id" class="bean 编译的类" scope="bean 作用域"></jsp:useBean>
简单实用javabean:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>JSP use javabean</h2> <jsp:useBean id="date" class="java.util.Date" />
</jsp:useBean> <%= date %> </body> </html>
访问 JavaBean 对象的属性
在 <jsp:useBean> 标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法,使用 <jsp:setProperty/> 标签来调用 setter 方法,语法格式如下:
<jsp:useBean id="id" class="bean 编译的类" scope="bean 作用域"> <jsp:setProperty name="bean 的 id" property="属性名" value="value"/> <jsp:getProperty name="bean 的 id" property="属性名"/> ........... </jsp:useBean>
简单例子
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>get 和 set 属性实例</title> </head> <body> <jsp:useBean id="students" class="StudentsBean"> <jsp:setProperty name="students" property="firstName" value="小强"/> <jsp:setProperty name="students" property="lastName" value="王"/> <jsp:setProperty name="students" property="age" value="10"/> </jsp:useBean> <p>学生名字: <jsp:getProperty name="students" property="firstName"/> </p> <p>学生姓氏: <jsp:getProperty name="students" property="lastName"/> </p> <p>学生年龄: <jsp:getProperty name="students" property="age"/> </p> </body> </html>