JavaBean是一个可重复使用的软件组件,基于Java语言。
可以实现代码的重复利用;易编写、易维护、易使用;可以在任何安装了Java运行的平台上使用,而无须重新编译。
编写和使用JavaBean
编写JavaBean
为了能让使用bean的应用程序构建工具使用JSP动作标记知道bean的属性和方法,在类的命名要遵守以下规则:
(1)getXxx()——获取属性xxx
setXxx()——修改属性xxx
后缀首字母大写
(2)类中定义的方法的访问权限都必须是public
(3)类中必须有一个构造方法是public、无参数的。
源文件须使用package语句给出包名,如:package tom.jiafei
保存源文件时,“保存类型”为“所有文件”,“编码”为“ANSI”
创建与使用bean
<jsp:useBean id=“bean的名字” class=“创建bean的类” scope=“bean有效范围”/>
例如:
<jsp:useBean id="circle" class="tom.jiafei.Circle" scope="page"/>
类名要带包名
page bean 有效范围是当前页面,存活到当前页面执行完毕,分配给每个JSP页面的page bean是互不相同的,不同用户的page bean 也是互不相同的。
session bean有效范围是用户的Web服务目录下的各个页面,存活到会话结束,不同用户的page bean 也是互不相同的。
request bean有效范围是用户请求的当前页面,存活到请求结束,不同用户的page bean 也是互不相同的。
application bean有效范围是当前Web服务目录下的各个页面,存活到Tomcat服务器关闭,不同用户的application bean都是相同的。
获取和修改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>

一个实例
编写一个JSP页面,该页面提供一个表单,用户可以通过表单输入梯形的上底、下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形面积的任务交给一个page bean去完成。JSP页面使用getProperty动作标记显示page bean中的数据,例如梯形的面积。
(1)bean的类文件以“class"形式创建,为”Area.java"。需要把bean文件放到WEB-INF\CLASSES\tom\jiafei中。

一开始在classes文件下无法新建子文件,后面不知道怎么的,就有了,可能是多次重新打开了?
package tom.jiafei;
public class Area {
double high,up,down,area;
public void setHigh(double h){
high=h;
}
public double getHigh(){
return high;
}
public void setUp(double u){
up=u;
}
public double getUp(){
return up;
}
public void setDown(double d){
down=d;
}
public double getDown(){
return down;
}
public double getArea(){
this.area=(up+down)*high/2;
return area;
}
}
然后可以看到这个类文件在tom.jiafei包内

此时创建成功了。
(2)创建jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<jsp:useBean id="tixing" class="tom.jiafei.Area" scope="page"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<style>
#textStyle{
font-family:宋体;font-size:20;color:blue
}
</style>
<p id="textStyle">
<form action="" Method="post">
上底:<input type=text name="shangdi" id=textStyle>
<br>下底:<input type=text name="xiadi" id=textStyle>
<br>高 :<input type=text name="high" id=textStyle>
<br><input type=submit id=textStyle value="提交">
</form>
<jsp:setProperty property="up" name="tixing" param="shangdi"/>
<jsp:setProperty property="down" name="tixing" param="xiadi"/>
<jsp:setProperty property="high" name="tixing" param="high"/>
<br> 上底:<jsp:getProperty property="up" name="tixing"/>
<br> 下底:<jsp:getProperty property="down" name="tixing"/>
<br> 高:<jsp:getProperty property="high" name="tixing"/>
<br> 面积:<jsp:getProperty property="area" name="tixing"/>
</p></body></html>
使用JSP动作标记useBean加载使用bean
<jsp:useBean id="tixing" class="tom.jiafei.Area" scope="page"/>
设置变量值: param这里是表单文本框的对象名,property是bean中对应的变量名,name是加载的bean名
<jsp:setProperty property="up" name="tixing" param="shangdi"/>
获取变量值:
<jsp:getProperty property="up" name="tixing"/>
(3)运行效果

另一个实例
与前面不同的是,这个例子中,在a.jsp中提交表单,在jvxing.java中创建bean类,在b.jsp中获取a.jsp中的表单内容,并调用request bean完成面积计算。
(1)
<%@ 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>
<body>
<form action="b.jsp" Method="post">
长:<input type=text name="length" id=textStyle>
<br>宽:<input type=text name="width" id=textStyle>
<br><input type=submit id=textStyle value="提交">
</form>
</body>
</html>
(2)
<%@ 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">
<jsp:useBean id="jvxing" class="tom.jiafei.jvxing" scope="request"/>
<html>
<body>
<% String a=request.getParameter("length");
String b=request.getParameter("width");
%>
<jsp:setProperty property="length" name="jvxing" param="length"/>
<jsp:setProperty property="width" name="jvxing" param="length"/>
<br> 长:<jsp:getProperty property="length" name="jvxing"/>
<br> 宽:<jsp:getProperty property="width" name="jvxing"/>
<br> 矩形面积:<jsp:getProperty property="area" name="jvxing"/>
</body>
</html>
获取表单内容:
<% String a=request.getParameter("length");
String b=request.getParameter("width");
%>
(3)
package tom.jiafei;
public class jvxing {
double length,width,area;
public void setLength(double l){
length=l;
}
public double getLength(){
return length;
}
public void setWidth(double w){
width=w;
}
public double getWidth(){
return width;
}
public double getArea(){
this.area=length*width;
return area;
}
}
本文详细介绍了如何编写和使用JavaBean,包括遵循的命名规则、创建与使用bean的步骤,以及在JSP中通过jsp:useBean标签管理bean的生命周期。通过实例展示了如何在JSP页面中获取和修改bean的属性,以及如何处理用户输入来计算梯形面积。此外,还提及了一个涉及多个页面间的bean传递的实例。

1163

被折叠的 条评论
为什么被折叠?



