1.javabean介绍
javabean是一个可复用,跨平台的软件组件,实际上是使用java语言编写的一个特殊的java类。Javabean分两种,一种用于GUI开发,一种用于web应用开发,他主页负责业务逻辑的处理。
2.javabean的特点
1)javabean必须是public类型的公关类;
2)在javabean中需要提供一个public类型的无参构造方法;
3)为javabean的属性提供setter和getter方法,setter方法为属性设置值,getter方法获取属性的值。注意杜宇boolean类型的属性,允许使用“is”代替“get”和"set"。
4)get和set方法必须是public类型的,而javabean属性必须是private类型的。
5)在设计javabean时通常将其放在一个命名的包下
注意:javabean除了可以定义get,set方法,还可以定义其他方法。
3.javabean的应用范围
说明:在jsp使用<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>这三个动作标记访问javabean。其中在<jsp:useBean>动作标记的作用是在jsp页面中产生一个javabean的快捷参考。其scope属性有四个取值,分别为page,
request,session,application,表示页面所引用的javabean的应用范围。
4.javabean开发注意事项
1)不是试图在javabean属性中设置html或JavaScript脚本,因为不同的浏览器对脚本的兼容性不同,可能会导致浏览器崩溃。与此同时,复杂的html脚本也会闲置javabean的寿命和灵活性。
2)不要提供任何的分支选择,如果用户使用不同的系统浏览页面,可以提供一种可以替换的方法。
5.访问javabean
前述:在jsp页面中通过使用于javabean有关的动作标记访问javabean,访问javabean的动作标记主要有以下三种。
①<jsp:useBean>:在jsp页面中声明并创建javabean对象实例。
其语法格式为:
<jsp:useBean id="对象名" class="完整包路径" scope="作用范围"/>
id:代表引用javabean对象的id,即在该jsp页面中相当于一个局部变量,使用此ID表示引用的javabean对象。需要注意的是,在同一个会话范围内不允许有两个相同ID的javabean对象。
class:代表引用javabean的具体类名。
scope:指定引用的javabean的作用范围,可以是page,request,session或application。默认page。
②<jsp:setProperty>:为javabean对象的特定属性设置值。
其语法格式为:
<jsp:setProperty property="width" name="rectangle" value="20"/>
property:对应javabean类的同名成员变量,例如property属性的值为width,对应于Rectangle类中的成员变量width。property属性的值也可以为“ * ”,表示自动匹配表单中的属性名。所以其表单的name必定要和javabean的属性命名一样。
name:name属性值对应于<jsp:useBean>动作标记的ID属性值。
value:可选属性,为property属性设定值。
③<jsp:getProperty>:获取javabean对象的属性值,并且显示在页面上。
其语法格式为:
<jsp:getProperty property="length" name="rectangle"/>
property:其值为bean对象的属性名,代表我们要获取该bean对象的啥属性值。
name:name属性值对应于<jsp:useBean>动作标记的ID属性值。
查找原理:
web容器在执行<jsp:getProperty>动作标记时依据property属性指定的属性名自动调用javabean对应的getter方法。
实例:
1)编写javabean
package henu.action;
public class Rectangle {
private double width;
private double length;
private double area;
private double perimeter;
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getArea() {
return area;
}
public void setArea(double area) {
this.area = area;
}
public double getPerimeter() {
return perimeter;
}
public void setPerimeter(double perimeter) {
this.perimeter = perimeter;
}
}
2)在jsp中使用该bean
input.jsp
.
.
.
<form action="result.jsp" method="post">
长:<input type="text" name="lenght"/><br/>
宽:<input type="text" name="width"/><br/>
<input type="submit" value="计算"/>
</form>
.
.
.
result.jsp
<body>
<jsp:useBean id="rectangle" class="package henu.action.Rectangle"/>
<jsp:setProperty property="*" name=rectangle"/>
长:<jsp:getProperty property="length" name="rectangle"/><br/>
宽:<jsp:getProperty property="width" name="rectangle"/><br/>
</body>