lark--
--2005.7.30
********************************************************************
第五章在JSP中使用JavaBean
1.基本概念:
JavaBean体系结构是第一个全面的基于组件的标准模型之一,是java类,遵循一个接口格式,
以便于使方法命名,底层行为以及继承或实现的行为能够把类看作标准的javaBeans组件进行构造.
JavaBean具有以下特性:
可以实现代码的重复利用;
易维护性,易使用性,易编写性;
可以在支持java的任何平台上工作,而不需要重新编译;
可以在内部,网内或者网络之间进行传输;
可以以其他部件的模式进行工作;
2.JavaBean的属性:(可分为四类)
simple(简单的),indexed(索引的),bound(绑定的),constrained(约束的)
(1)simple:一个简单属性表示一个伴随有get/set方法的变量,它依赖于标准命名约定来定义getXXX()方法和setXXX()方法.
使用语法如下:
public void set<PropertyName>(<PropertyType>value);
public <PropertyType> get<propertyName>();
public boolean is<propertyName>();
(2)indexed:表示一个数组值,和simple一样,可以使用get/set方法取得数组中的值.
使用语法如下:
public void set<PropertyName>(int index, <PropertyType> value);
public void set<propertyName>(<PropertyType[]> value);
public <PropertyType[]> get<PropertyName>();
public <PropertyType> get<PropertyName>(int index);
(3)bound:提供一种机制,即通知监听器一个JavaBean组件的属性发生了改变.监听器实现了
PropertyChangeListener接口并接收由JavaBean组件产生的PropertyChangeEvent对象.
(此属性在JavaBean图形编程中大量使用)
(4)constrained:与绑定属性类似,但是属性值的变化首先要被所有的监听器验证之后,值的变化
才能由JavaBean组件发生作用.
3.一个简单的JavaBean例子:
//simpleCalculator.java
package com.lark.simple;
class SimpleCalculator
{
private String first;
private String second;
private double result;
private String operator;
public void setFirst(String first)
{this.first=first;}
public void setSecond(String second)
{this.second=second;}
public void setOperator(String operator)
{this.operator=operator;}
public getFirst(){return this.first;}
public getsecond(){return this.second;}
public getResult(){return this.result;}
public void calculate()
{
double one=Double.paraseDouble(first);
double two=Bouble.paraseDouble(second);
try
{
if(operator.equals("+"))result=one+two;
else if(operator.equals("-"))result=one-two;
else if(operator.equals("*"))result=one*two;
else if(operator.equals("/"))result=one/two;
}
catch(Exception e){System.out.println(e);}
}
}
//use SimpleCalculator in the jsp file(calculate.jsp)
<jsp:useBean id="calculator" scope="request" class="com.lark.simple.SimpleCalculator">
<jsp:setProperty name="calculator" property="*"/>
</jsp:useBean>
the result of calculating:
<%
try
{
calculator.calculate();
out.println(calculator.getFirst()+calculator.getOperator()+calculator.getSecond()
+"="+calculator.getResult());
}
catch(Exception e)
{
out.println(e.getMessage());
}
%>
<form action="calculate.jsp" method="get">
<input type="text" name="first"><br>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="second"><br>
</form>
**************************************************************
第六章:动态页面和用户会话