组件技术概述
现在软件开发都已经转向了基于组件的开发,目前具备代表性的组件技术有
微软COM、COM+
Sun的JavaBean和EJB(Enterprise Java Bean)、CORBA(Object Request Broker Architecture)
JavaBean简介
JavaBean是一种软件组件模型。它与其他软件对象相互作用,决定如何建立和重用软件组件。
这些可重用软件组件被称之为Bean。Bean使用现有的Bean帮助开发新的计划,进而建立他们
之间的关系。
在Sun公司的JavaBean规范定义中,Bean的正式说法是:“Bean是一个基于Sun公司的JavaBean
JavaBean规范的、可在编程工具中被可视化处理的可复用的软件组件”。
因此JavaBean具有4个基本特性:独立性、可重用性、在可视化开发工具中使用和状态可以保持。
JavaBean编程
JavaBean烦呢称可视组件和非可视组件。在JSP中主要使用非可视组件,对于非可视组件,不必去设计它的外观,主要关心它的属性和方法。
JavaBean的特点
编写JavaBean就是编写一个Java类,所以只要会编写类就能编写一个Bean,一个完整JavaBean在类
的命名上需要遵守一下4项规定。
(1)如果类的成员变量的名字是xxx,那么只要更改或获取成员变量的值,在类中使用两个方法:
getXxx(),用来获取属性xxx;setXxx(),用来修改属性xxx。
(2)对于boolean类型的成员变量,允许使用is代替get和set。
(3)类中方法的访问属性必须是public的。
(4)类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。
JavaBean页面指令
在JSP中专门提供了3个页面指令来和JavaBean交互,分别是jsp:useBean指令、jsp:setProperty指令
和jsp:getProperty指令。
jsp:useBean指令指定JSP页面中包括JavaBean:
<jsp:useBean id="beanid" scope="page|request|session|application" class="package.class"/>
其中:
id是当前页面中引用JavaBean的名字,可以取4个值。
(1)page: JavaBean只能在当前页面使用。在JSP页面执行完毕后,该JavaBean将会进行垃圾回收。
(2)request:JavaBean在相邻的两个页面有效。
(3)session:JavaBean在这个用户会话过程中都有效。
(4)application: JavaBean在整个Web应用的范围有效
jsp:setProperty指令功能是设置JavaBean的属性。jsp:getProperty操作指令功能是得到某个JavaBean属性。
编写JavaBean
考虑Web服务器兼容的问题,一般JavaBean都放在包中,首先使用Eclipse创建一个基于Web的工程,然后在src
目录下创建一个包Bean,在Beanm目录下创建一个类j6_01
程序名称:SimpleBean.java(简单的JavaBean)
package Bean;
import java.io.*;
public class SimpleBean
{
int radius;
public SimpleBean()
{
redius = 1;
}
public int getRadius()
{
return redius;
}
public vodi setRadius(int newRadius)
{
redius = newRadius;
}
public double getArea()
{
return Math.PI*radius*radius;
}
public double getLength()
{
return 2.0*Math.PI*radius;
}
}
使用JavaBean
创建好JavaBean以后,可以在JSP文件中调用写好的Bean了。在JSP中调研那个JavaBean有两种方法。
在工程的WebRoot目录下创建一个JSP文件method.jsp。
程序名称:method.jsp(调用JavaBean方法)
<%@ page contentType="text/html;charset=GBK" %>
<HTML><BODY>
<jsp:useBean id="gril" class="Bean.SimpleBean" scope="page">
</jsp:useBean>
<%
gril.setRadius(100);
%>
<P>圆的半径是:
<%=gril.getRadius()%>
<P>圆的周长是:
<%=gril.getLength()%>
<P>圆的面积是:
<%=gril.getArea()%>
</HTML></BODY>
将工程发布并部署到Tomcat服务器中。
方法2也是在方法1的基础上修改,保留import语句。应为import语句已经将类引入到JSP中:
SimpleBean gril = new SimpleBean;
程序名字:method2.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="Bean.SimpleBean"%>
<HTML><BODY>
<%
Simple gril = new Simple();
%>
<%
gril.setRadius(100);
%>
<P>圆的半径是:<%=gril.getRadius()%>
<P>圆的周长是:<%=gril.getLength()%>
<P>圆的面积是:<%=gril.getArea()%>
</HTML></BODY>
执行的结构依然不变,编译好的JavaBean是一个Class文件,可以利用jar命令将许多的Class文件打包成jar
文件, 提供给别的开发者使用。
打包的时候,需要连同Class问价所在的包目录一起打包。比如将SimpleBean.class所在目录Bean复制到D
盘根目录,然后将其打包。使用命令为
jar cvf restBean.jar Bean/
其中testBean.jar的文件名是任意的,不必和报名相同。将该jar文件复制到ROOT/WEB-INF/lib下,同时删除
ROOT/WEB-IINF/classes下的Bean文件夹,重新执行method2.jsp,依然可以引用到JavaBean程序。
所以,JavaBean既可以在classs目录下,也可以打包放在lib目录下,一般自己写的JavaBean不打包直接
放在classes目录下,引用外部的JavaBean一般是以JAR包的形式,放在lib目录下。
品略图书馆 http://www.pinlue.com/