JavaBean是一种基于Java的软件组件。JSP对于在Web应用中集成JavaBean组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。如果我们有三个JavaBean,它们分别具有显示新闻、股票价格、天气情况的功能,则创建包含所有这三种功能的Web页面只需要实例化这三个Bean,使用HTML表格将它们依次定位就可以了。
为说明在JSP环境下JavaBean的应用,我们创建了一个名为TaxRate的Bean。它有两个属性,即Product(产品)和Rate(税率)。两个set方法分别用来设置这两个属性,两个get方法则用于提取这两个属性。在实际应用中,这种Bean一般应当从数据库提取税率值,此处我们简化了这个过程,允许任意设定税率。下面是这个Bean的代码清单:
packagetax;
publicclassTaxRate{
StringProduct;
doubleRate;
publicTaxRate(){
this.Product="A001";
this.Rate=5;
}
publicvoidsetProduct(StringProductName){
this.Product=ProductName;
}
publicStringgetProduct(){
return(this.Product);
}
publicvoidsetRate(doublerateValue){
this.Rate=rateValue;
}
publicdoublegetRate(){
return(this.Rate);
}
}
在JSP页面中应用上述Bean要用到<jsp:useBean>标记。依赖于具体使用的JSP引擎的不同,在何处配置以及如何配置Bean的方法也可能略有不同。本文将这个Bean的.class文件放在c:.0INF目录下,这里的tax是一个专门存放该Bean的目录。下面是一个应用上述Bean的示例页面:
<HTML>
<BODY>
<%@pagelanguage="java"%>
<jsp:useBeanid="taxbean"scope="application"class="tax.TaxRate"/>
<%taxbean.setProduct("A002");
taxbean.setRate(17);
%>
使用方法1:<p>
产品:<%=taxbean.getProduct()%><br>
税率:<%=taxbean.getRate()%>
<p>
<%taxbean.setProduct("A003");
taxbean.setRate(3);
%>
<b>使用方法2:</b><p>
产品:<jsp:getPropertyname="taxbean"property="Product"/>
<br>
税率:<jsp:getPropertyname="taxbean"property="Rate"/>
</BODY>
</HTML>
在<jsp:useBean>标记内定义了几个属性,其中id是整个JSP页面内该Bean的标识,scope属性定义了该Bean的生存时间,class属性说明了该Bean的类文件(从包名开始)。
这个JSP页面不仅使用了Bean的set和get方法设置和提取属性值,还用到了提取Bean属性值的第二种方法,即使用<jsp:getProperty>标记。<jsp:getProperty>中的name属性即为<jsp:useBean>中定义的Bean的id,它的property属性指定的是目标属性的名字。
事实证明,JavaServlet是一种开发Web应用的理想构架。JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者
为说明在JSP环境下JavaBean的应用,我们创建了一个名为TaxRate的Bean。它有两个属性,即Product(产品)和Rate(税率)。两个set方法分别用来设置这两个属性,两个get方法则用于提取这两个属性。在实际应用中,这种Bean一般应当从数据库提取税率值,此处我们简化了这个过程,允许任意设定税率。下面是这个Bean的代码清单:
packagetax;
publicclassTaxRate{
StringProduct;
doubleRate;
publicTaxRate(){
this.Product="A001";
this.Rate=5;
}
publicvoidsetProduct(StringProductName){
this.Product=ProductName;
}
publicStringgetProduct(){
return(this.Product);
}
publicvoidsetRate(doublerateValue){
this.Rate=rateValue;
}
publicdoublegetRate(){
return(this.Rate);
}
}
在JSP页面中应用上述Bean要用到<jsp:useBean>标记。依赖于具体使用的JSP引擎的不同,在何处配置以及如何配置Bean的方法也可能略有不同。本文将这个Bean的.class文件放在c:.0INF目录下,这里的tax是一个专门存放该Bean的目录。下面是一个应用上述Bean的示例页面:
<HTML>
<BODY>
<%@pagelanguage="java"%>
<jsp:useBeanid="taxbean"scope="application"class="tax.TaxRate"/>
<%taxbean.setProduct("A002");
taxbean.setRate(17);
%>
使用方法1:<p>
产品:<%=taxbean.getProduct()%><br>
税率:<%=taxbean.getRate()%>
<p>
<%taxbean.setProduct("A003");
taxbean.setRate(3);
%>
<b>使用方法2:</b><p>
产品:<jsp:getPropertyname="taxbean"property="Product"/>
<br>
税率:<jsp:getPropertyname="taxbean"property="Rate"/>
</BODY>
</HTML>
在<jsp:useBean>标记内定义了几个属性,其中id是整个JSP页面内该Bean的标识,scope属性定义了该Bean的生存时间,class属性说明了该Bean的类文件(从包名开始)。
这个JSP页面不仅使用了Bean的set和get方法设置和提取属性值,还用到了提取Bean属性值的第二种方法,即使用<jsp:getProperty>标记。<jsp:getProperty>中的name属性即为<jsp:useBean>中定义的Bean的id,它的property属性指定的是目标属性的名字。
事实证明,JavaServlet是一种开发Web应用的理想构架。JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者