1.JavaBean概述
1.1 什么是JavaBean?
JavaBean是一种规范,也就是对类的要求。它要求Java类的成员变量提供getter/setter方法,这样的成员变量被称之为JavaBean属性。
一个标准的JavaBean组件具有以下几个特性:
(1)是一个公开的类。
(2)有一个默认的构造方法,也就是不带参数的构造方法(在实例化JavaBean对象时,需要调用默认的构造方法)
(3)提供setXXX()方法和getXX()方法来让外部程序设置和获取JavaBean的属性。
(4)实现 java.io.Serializable或者java.io.Externalizable接口,以支持序列化。
换句话而言,附和上述条件的类,都可以看做JavaBean组件。
代码案例:
“`
package cn.itcast.domain;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
1.2 JavaBean属性:
JavaBean属性是具有getter/setter方法的成员变量。
需要注意的是JavaBean的属性和实例变量不是一个概念,属性就是get/set后边的名字,是实例变量更高层次的抽象
- 也可以只提供getter方法,这样的属性叫只读属性;
- 也可以只提供setter方法,这样的属性叫只写属性;
- 如果属性类型为boolean类型,那么读方法的格式可以是get或is。例如名为abc的boolean类型的属性,它的读方法可以是getAbc(),也可以是isAbc();
2. 在Jsp中使用JavaBean。
在Jsp中可以像使用普通类一样访问JavaBean,在脚本元素中实例化类的对象,调用对象的方法,在Jsp中,提供三个动作元素:
(1) <jsp:useBean>:创建JavaBean对象;
(2) <jsp:setProperty>:设置JavaBean属性;
(3) <jsp:getProperty>:获取JavaBean属性;
2.1 Jsp中与JavaBean相关的三个标签:
1 < jsp:useBean>
<jsp:useBean>标签的作用是创建JavaBean对象:
(1)在当前JSP页面创建或者定位JavaBean对象;
(2)把创建的JavaBean对象保存到域对象中;
语法为:
<jsp:usebean id="name" scope="page|session|request|application" typeSpec/>
其中typeSpec定义如下:
typeSpec::=class="classname"|
type="typename" class="classname"|
beanName="beanName" type="typename"|
type="typename" beanName="beanName"|
type="typename"
代码示例:
< jsp:useBean id="user1" class="cn.itcast.domain.User" />
翻译为java代码就是:
<%
cn.itcast.domain.User user1 = new cn.itcast.domain.User();
pageContext.setAttribute("user1", user1);
%>
这说明我们可以在JSP页面中完成下面的操作:
< jsp:useBean id="user1" class="cn.itcast.domain.User" />
<%=user1 %>
<%
out.println(pageContext.getAttribute("user1"));
%>
2.< jsp:setProperty>和 < jsp:getProperty>
< jsp:setProperty>标签的作用是给JavaBean设置属性值,而< jsp:getProperty>是用来获取属性值。在使用它们之前需要先创建JavaBean:
< jsp:useBean id="user1" class="cn.itcast.domain.User" />
< jsp:setProperty property="username" name="user1" value="admin"/>
< jsp:setProperty property="password" name="user1" value="admin123"/>
用户名:< jsp:getProperty property="username" name="user1"/>< br/>
密 码:< jsp:getProperty property="password" name="user1"/>< br/>