这个标签是笔者认为最重要的标签。
首先介绍 Java Bean 的特点:
可以实现代码服用,易编写,易维护,易使用,可以在任何有 JVM 的机器上使用而不许重新编译。
1. 编写 JavaBean 的规则:
(1) 如果类的成员变量的名字是 xxx ,那么为了更改或获取成员变量的值在类中可以定义两个方法:
getXxx() 来获取属性和 setXxx ()来设置属性,要注意大小写。
(2) 对于 boolean 类型的成员变量,允许使用 is 来代替 get 和 set 。
(3) 类中的方法属性必须是 Public 的。
(4) 类中如果有构造方法,那么这个构造方法也是 public 的,并且是无参数的。
例:一个简单 bean
Circle.java:
package bean;
public class Circle {
int radius;
public Circle(){
radius = 1;
}
public int getRadius(){
return radius;
}
public void setRadius(int newRadius){
radius = newRadius;
}
public double circleArea(){
return Math.PI * radius * radius;
}
public double circlLength(){
return 2.0 * Math.PI * radius;
}
}
2. 使用 beans
使用 beans 时就要用到 useBean 标签了,其格式为:
<jsp:useBean id=-“ 给 bean 起的名字 ”class=” 创建 beans 的类 ”scope=”bean 有效范围 ”>
</jsp:useBean>
其中 scope 的属性值需要注意一下:
1.Scope 取 page :则即当客户使用 bean 时为每个客户占用不同的空间,简单说 bean 是不共享的,用户不能互相干涉。当用户离开该访问页时无效。
2.Scope 取 session :即该 bean 是共享的,所有用户访问时将对同一个 bean 操作,会互相干涉。当客户关闭浏览器时无效。
3.Scope 取 request :只当用户访问时有效,且不是共享的。当客户请求时作出相信,相应完后无效。
4.Scope 取 application :共享 bean ,当服务器关闭时该 bean 无效。
最后,若要使用 bean 还必须导入其类,可用命令:
<@page import=”className”>
例: Circle 为一个类文件名
useBeans.jsp :
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Circle"%>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<jsp:useBean id="girl" class="Circle" scope="page" >
</jsp:useBean>
<%-- 通过上述 JSP 标签,客户获得了一个作用域是 page ,名字是 girl 的 beans --%>
<% // 设置圆的半径:
girl.setRadius(100);
%>
<P> 圆的半径是:
<%=girl.getRadius()%>
<P> 圆的周长是:
<%=girl.circlLength()%>
<P> 圆的面积是:
<%=girl.circleArea()%>
</BODY>
</HTML>
3 获取和修改 beans 的属性
getProperty 和 setProperty 可完成该命令。
格式分别为:
<jsp:getProperty name=”bean 的名字 ” property=”beans 的属性 ” />
jsp:setProperty name=”bean 的名字 ” property=”beans 的属性 ” />
一个综合的例子 :
student.jsp :
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Student"%>
<HTML>
<BODY bgcolor=cyan><Font size=1>
<jsp:useBean id="zhang" class="Student" scope="page" >
</jsp:useBean>
<jsp:setProperty name= "zhang" property="name" value=" 张小三 " />
<P> 名字是:
<jsp:getProperty name= "zhang" property="name" />
<jsp:setProperty name= "zhang" property="number" value="1999001" />
<P> 学号是:
<jsp:getProperty name= "zhang" property="number" />
<% double height=1.70;
%>
<jsp:setProperty name= "zhang" property="height" value="<%=height+0.05%>" />
<P> 身高是:
<jsp:getProperty name= "zhang" property="height" />
米
<jsp:setProperty name= "zhang" property="weight" value="67.65" />
<P> 体重是:
<jsp:getProperty name= "zhang" property="weight" />
公斤
</FONT>
</BODY>
</HTML>