JavaBean技术
JavaBean技术最初是面向Swing等GUI而设计的,后来经过用于Web开发上.
使用JavaBean
JavaBean主要设计3个JSP动作:
1
| <jsp:useBean id="对象名" class="类型" scope="范围[request | page | session | application]"/>
|
1 2 3 4 5 6
| <jsp:setProperty name="对象名" property="* | 相关属性" value = ""></jsp:setProperty> <!-- *:自动匹配表单中的能匹配的属性名 相关属性: 请确保和bean类中的私有属性名一样 value:可选,如果省略,则自动匹配表单中同名的输入域(text input) -->
|
1
| <jsp:getProperty name="对象名" property="相关属性"/>
|
1.编写JavaBean类
编写JavaBean类需要注意:
- 为每一个字段都设置为
private
,且提供setter
和getter
- 创建默认构造方法
- 请将javabean放在包里面,不要使用
defaultPackage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| package bean;
public class Rectangle { private double width; private double length; private double area; private double perimeter;
public double getArea() { area = width * length; return area; }
public double getLength() { return length; }
public double getWidth() { return width; }
public void setArea(double area) { this.area = area; }
public void setLength(double length) { this.length = length; }
public double getPerimeter() { perimeter = 2 * (width + length); return perimeter; }
public void setWidth(double width) { this.width = width; }
public void setPerimeter(double perimeter) { this.perimeter = perimeter; } public Rectangle(){ } }
|
2.设计JSP页面引用JavaBean
请求端页面关键代码:
1 2 3 4 5
| <form action="result.jsp" method="post"> 长:<input type="text" name = "length"/><br/> 宽:<input type="text" name = "width"/><br/> <input type="submit" value="计算"> </form>
|
响应端页面关键代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <jsp:useBean id="rectangle" class="bean.Rectangle" scope="request"/> <!-- 创建一个Rectangle对象,对象名为:rectangle --> <!-- 相当于 Rectangle rectangle = new Rectangle() -->
<jsp:setProperty name="rectangle" property="*"></jsp:setProperty> <!-- 设置rectangle对象可匹配属性值,相当于下面代码 --> <jsp:setProperty name="rectangle" property="width"></jsp:setProperty> <jsp:setProperty name="rectangle" property="length"></jsp:setProperty> <!-- 也相当于下面的代码 --> <jsp:setProperty name="rectangle" property="width" value='<%= Double.parseDouble(request.getParameter("width"))%>'></jsp:setProperty> <jsp:setProperty name="rectangle" property="length" value='<%= Double.parseDouble(request.getParameter("length"))%>'></jsp:setProperty>
<!-- 获取rectangle对象属性值 --> 面积:<jsp:getProperty name="rectangle" property="area"/><br/> 周长:<jsp:getProperty name="rectangle" property="perimeter"/><br/>
|