# 系统实现

一、 描述：

本案例应用 Java Beans 和面向对象理念来构建一个 JSP（Java Server Pages）应用。

该案例将向你展示如何使用 Java Beans 的 useBean 和 setProperty 来从 JSP 中访问 Bean 信息。

二、 配置：

为了让我们的操作更加便捷，我们将给 Eclipse 添加 Sysdeo Tomcat 外挂程序。Sysdeo 外挂程序让你可以在 Eclipse 的环境中启动和中止 Tomcat。

首先保证你的系统已经安装了 Tomcat 服务器。我们在先前的小类子中已经调试和配置过 JSP 应用，在这里如果有问题请回顾先前的小类子配置。

从下面网页下载 Sysdeo：

http://www.sysdeo.com/sysdeo/content/download/393/4930/file/tomcatPluginV31.zip

解压后把 tomcatPluginV31 目录下的文件夹整个复制到 Eclipse 安装目录下的平 plugins 目录下。重新启动 Eclipse，可以看到在 Eclipse 工具栏上多了 3 个 tomcat 按钮，分别是启动、停止和重启控制（红色框框内）。

然后对 Eclipse 做些设置：打开“窗口”-〉“首选项”，我们看到 Tomcat 选项：

对 Tomcat 选项，我们要作如下设置：

1、 根据你当前安装的 Tomcat 版本准确选择“Tomcat version”选项；

2、 点击“浏览”选择 Tomcat 的安装目录；

3、 在“Context declaration mode”一项中，我们选择“Server.xml”，并点击“浏览”到 Tomcat 安装目录下选择 conf 目录下的“server.xml”文件。

4、 其它可按默认设置就行。点击应用，结束设置。

三、创建项目：

1、 文件-〉新建项目-〉Tomcat Project

2、 下一步，项目名称为“case401”

3、 下一步，记住在“Can update context definition ( server.xml or context file )”选项选上。 其它按默认值。

4、 完成。这样 Eclipse 自动生存了 WEB-INF 和 work 目录，并已经修改 Tomcat 的服务器配置。

5、 在 WEB-INF 目录下的 src 目录里建立 mysimplebean.java 文件。

注意：在 jsp 里使用 bean，一定要定义到一个包里，不能使用默认的包。

在这里我们定义包名为：BeanDir。

mysimplebean.java 的代码如下：

package BeanDir;

public class mysimplebean

{

public String getceoname()

{

String ceonameval = "Tom Hanks CEO of Tom Hanks INC";

return ceonameval;

}

public String ceoemail()

{

String ceoemailval = "tom@tomhanksinc.com";

return ceoemailval;

}

public double findtakehome(int salary,String designation)

{

double takehomeamt;

if(designation=="Developer")

{

takehomeamt = salary+salary*0.15; //增长 15 %的工资

}

else

{

takehomeamt = salary+salary*0.10; //增长 10 %的工资

}

return takehomeamt;

}

}

6、 在 case401 目录下创建 callbean.jsp 文件（代码参照该目录下的同名文件）。

7、 在浏览器上输入：http://localhost:8080/case401/callbean.jsp

浏览结果。

四、UML 图

1、Bean 的 UML 图

2、jsp 文件经过 Tomcat 解析后的 UML 图

五、运行效果图

六、要点

1、 在这里我们综合使用了 HTML、Java Bean 和 JSP，并用 Tomcat 来把整个应用给构架起来。

2、 从 JSP 代码中我们可以看到，HTML 是作为它的输出内容，而不像我们自己编写 HTML 代码一样。在我们写 HTML 代码的时候，我们就是已经在编写网页。而用 JSP 的时候，我们所写的 HTML 代码只是 JSP，或者更具体的说，是 Java 输出的一部分。这就给我们一个启示，我们可以在不同时候输出不同的 HTML 代码，那样就有了我们平时所说的动态页面。

3、 如何使用 Bean？首先我们要认识到，Bean 是 Java 的一个特殊类。尽然是类，那么用起来，也就是像使用其它类一样，首先要实类化为某个对象，然后再通过这个对象来调用它的方法。

4、 第一个问题，Bean 如何实类化。在 JSP 里，我们用 jsp:useBean 标签实类化一个 Bean：

<jsp:useBean id="mybeanid" class="BeanDir.mysimplebean" scope="session"/>

id 就是实类化后的对象，也是唯一名称，我们后面的操作就是针对这个对象；class 告诉了编译器使用那个 Bean；scope 告诉服务器这个对象的发挥作用的范围，在这里是“session”，也就是说这个对象将在这个对话过程中发挥作用。

5、 第二个问题，如何对 Bean 赋值。在 jsp 里，我们使用 jsp;setProperty 标签来对 Bean 的属性进行赋值：

<jsp:setProperty name="mybeanid" property="*"/>

可以看到，我们用 name 来告诉编译器，我们对那个对象进行操作。在这个案例里，我们的 Bean 没有特别去定义属性，所以 property 我们用*号值。*号是通配符，表示 Bean 的所有属性。

6、 在 Bean 的方法调用方面，跟一般 Java 类的方法调用没有什么差别。如：

takehomeamt_ret = mybeanid.findtakehome(5000,"Developer") ;

takehomeamt_ret = mybeanid.findtakehome(5000,"Designer") ;

7、 在 HTML 的使用方面，我们用到了<table>标签比较多的属性：边界 border、单元格间隔 cellspacing、单元格内填充 cellpadding、水平对齐 align、垂直对齐 valign。这些属性的灵活应用，可以让页面的布局和现实更加美观。