目录
5.1编写和使用JavaBean
5.1.1编写JavaBean
编写JavaBean就是编写一个 Iava的类,所以只要会写类就能编写一个JavaBean。这个类创建的一个对象称为一个 JavaBean,简称bean,分配给bean的变量(成员变量),也称bean的属性。为了能让使用bean 的应用程序构建工具(比如 Tomcat服务器)使用JSP 动作标记知道bean 的属性和方法,在类的命名上需要遵守以下规则:
(1)如果类的成员变量(也称bean 的属性)的名字是xxx,那么为了获取或更改bean的属生的值,类中必须提供两个方法:
getXxx()用来获取属性xxx。
setXxx()用来修改属性xxx。
也就是方法的名字用get或set为前缀,后缀是将属性(成员变量)名字的首字母大写的字符序列。
(2)类中定义的方法的访问权限都必须是 public的。
(3)类中必须有一个构造方法是 public、无参数的。
5.1.2保存bean的字节码
为了使jsp页面使用bean,tomcat服务器必须使用相对应的字节码创建一个对象,即创建一个bean,为了使tomcat服务器能够找到字节码文件,字节码文件必须保存在特定的目录中。
5.1.3创建与使用bean
<jsp:useBean id="circle" class="tom.jiafei.Circle" scope="page"/>
类名要带包名
5.2获取和修改bean的属性
package tom.jiafei
publiv class Goods{
String name="无名";
double price=0;
publiv String getName(){
return name;
}
public void setName(String newName){
name=newName;
}
public double getPrice(){
return price;
}
public void setPrice(double newPrice){
price=newPrice;
}
}
<%@ page contentType="text/html"%>
<%@ page pageEncoding="utf-8"%>
<% request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="phone" class="tom.jiafei.Goods" scope="page"/>
<HTML><body bgcolor=cyan>
<p style="font-family:黑体;font-size:20;color:red">
<jsp:setProperty name="phone" property="name" param="name"/>
<jsp:setProperty name="phone" property="price" param="price"/>
<br><b>名称:<jsp:getProperty name="phone" property="name"/>
<br><b>名称:<%=phone.getName()%><br>
<br><b>价格:<jsp:getProperty name="phone" property="price"/>
<br><b>价格:<%=phone.getName()%><br>
5.3bean的辅助类
在写一个创建bean的类时,除了需要使用import语句引入JDK提供的类,可能还需要自己编写一些其他的类,只要将这样类的包名和bean类的包名一致即可
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<style>
#textStyle{
font-family:宋体;font-size:36;color:blue
}
</style>
<% request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="triangle" class="red.star.Triangle" scope="request"/>
<HTML><body id = textStyle bgcolor=#ffccff>
<form action="" method="post" >
输入三角形三边:
边A:<input type=text name="sideA" id = textStyle value=0 size=5/>
边B:<input type=text name="sideB" id = textStyle value=0 size=5/>
边C:<input type=text name="sideC" id = textStyle value=0 size=5/>
<br><input type=submit id = textStyle value="提交"/>
</form>
<jsp:setProperty name="triangle" property="*"/>
三角形的三边是:
<jsp:getProperty name="triangle" property="sideA"/>,
<jsp:getProperty name="triangle" property="sideB"/>,
<jsp:getProperty name="triangle" property="sideC"/>.
<br><b>这三个边能构成一个三角形吗?<jsp:getProperty name="triangle" property="isTriangle"/>
<br>面积是:<jsp:getProperty name="triangle" property="area"/></b>
</body></HTML>
5.4JSP与bean结合的简单例子
JSP页面中调用bean可以将数据的外理从而面中分离出来,实现代码复用,以便更有效地维护一个 Web应用。本节将结合一些实际问题,进一步熟悉掌握bean的使用方法。在个节中,创建bean类的包名都是red.star,使用的 Web服务目录仍然是ch5,因此,需要在ch5目录下建立目录结构:ch5\WEB-INF\classes\red \ star,将创建bean 的字节码文件都保存在该目录中。为了调试程序方便,可以直接按照创建bean类的包名将相应的Java源文件保存在Web服务目录的相应目录中,例如将Java源文件保存在Web服务目录ch5的 WEB-INFNclasses\red\star目录中,然后使用MS-DOS命令行进入\red\star的父目录classes,按如下格式编译Java源文件:
classes>javac red\star\源文件名
5.5总结
JavaBean是一个可重复使用的软件组件,是遵循一定标准、用Java语言编写的一个类,该类的一个实例称作一个JavaBean。
一个JSP页面可以将数据的处理过程指派给一个或几个 bean来完成,我们在JSP页面中调用这些bean即可。在JSP页面中调用bean可以将数据的处理代码从页面中分离出来,实现代码复用,更有效地维护一个 Web应用。
bean的生命周期分为page、request、session和 application。