组件技术概述

现在软件开发都已经转向了基于组件的开发,目前具备代表性的组件技术有

微软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/