基于 Java 技术的 Web 应用设计模型的比较研究外文翻译资料
2022-11-22 15:31:31
英语原文共 16 页,剩余内容已隐藏,支付完成后下载完整资料
毕业论文(设计)
英文翻译
原文标题 A Comparative Study of Web Application Design
Models Using the Java Technologies
译文标题 基于 Java 技术的 Web 应用设计模型的比较研究
基于 Java 技术的 Web 应用设计模型的比较研究
B Kurniawan , J Xue
摘要 - Servlet 技术在建立可扩展性 Web 应用中是被应用最广泛的技术。在运用 JAVA 技术 开发 Web 应用中有四种模型,分别是:Model 1、 Model 2、 Struts 和 JavaServer Faces (JSF )。 Model 1使用一连串的 JSP 页面; Model 2采用了模型-视图-控制器(MVC ) 模式; Struts 是一个采用了 Model 2设计模型的框架; JSF 是一种支持 ready-to-use 组 件来进行快速 Web 应用开发的新技术。 Model 1对于中等和大型的应用来说很难维护, 所以不推荐使用。本文通过利用 Model 2、 Struts 和 JSF 这三种模型分别构建三个不同版本的在线商店应用程序,来比较和评价这三种模型在应用程序开发和性能上的差异。
关键词 -Servlet,Web应用,Structs,JSF
1绪论
当今, Web 应用是一种展现动态内容的最普遍的方式。 构建 Web 应用有许多种方法, 其中最流行的是 Servlet 技术。这种技术的流行是因为它比 CGI 、 PHP 等其他技术更具 优越性。然而 Servlet 对于开发来说还是麻烦的,因为它在传送 HTML 标签时需要程序 员将他们组合成为一个字符串对象,再将这个对象传给浏览器。同样的,对于输出的 一个很小的改动也要求 Servlet 被重新编译。基于这个原因, SUN 公司发明了 JavaServer Pages(JSP )技术。 JSP 允许 HTML 标签和 Java 代码混合在一起,每个页面 将被转化为一个 Servlet ,一个 JSP 就是一个 Servlet ,而且编译将在 JSP 页面第一次被 请求时自动进行,改变输出也不需要重新编译。
另外,通过使用 JavaBean 和定制标签库, JSP 能够将表示与业务逻辑相分离。 现 今,基于 JAVA 的 Web 应用开发标准是将 servlets 与 JSP 结合在一起。随后,出现了许多 种设计模型用来构建 servlet/JSP应用:Model 1、 Model 2、 Struts]和 JavaServer Faces (JSF )。 Model 1和 Model 2最早是在 JSP 规范中被提及的。 Model 1只使用 JSP 而不使 用 servlet , Model 2则结合了 JSP 与 servlet 。 Model 1和 Model 2的使用是有条件的, Model 1适合与开发原型和非常小的应用, Model 2则是开发中型和大型应用推荐的设 计模型。由于 Model 2越来越被行业所接受,一个建立 Struts 框架的开源项目也因此 被启动了。 Struts 通过为 Model 2提供了模型-视图-控制器中的控制器来完善 Model 2。另外, Struts 提供了更好的页面导航管理机制和一些定制标签库,能够进行更快 速的开发。尽管它学习难度大,并且,实际上它没有在任何的规范中被定义,但是它 还是作为 Model 2的一种替代获得了流行。 JavaServer Faces是在 JCP 的 JSR-127规范 下被建立。 Sun 公司力推这项技术,希望它能够成为构建 Java Web应用的最终模型。 JSF 最重要的特性是对 ready-to-use 组件的支持,比如:可扩展用户接口组件、简易 的页面导航、输入验证、数据转换和 JavaBean 管理机制。 servlet/JSP程序员面临的 问题是选择最合适的设计模型。明显的, JSF 在开发时间上提供了更好的解决方案。 然而,有些人担心实施 JSF 的开销所带来的性能下降而不愿采用这种技术。
我们使用 Model 2、 Struts和 JSF 分别构建三个不同版本的在线商店应用, 比较的 参数是:代码的行数、类的数目和性能测试结果。
我们研究哪种设计模型能够进行最快速的开发。我们评估基于这些模型的应用的 性能。我们提供一些建议来完善现有的设计模型,使得开发速度更快。
文章的余下部分组织如下:
第二部分讨论了 Web 开发中的问题,第三部分解释了三个设计模型如何来解决这 些开发问题,第四部分详细介绍了试验所需要的硬件和软件,第五部分给出试验的结 果并进行分析,第六部分回顾相关工作,第七部分得出结论并提出了一些改进现有设 计模型的建议。
2 Web 开发中的问题
所有的 Java 开发都使用 Servlet 技术作为基础技术。同样的,所有的 Java Web应 用都有一些问题需要解决:
1. 用户接口是在客户浏览器上呈现出的 HTML 标签。任何在应用中使用的服务器端 组件都必须被编码成为正确的 HTML 标签。除了显示内容和数据外,用户接口还负责接 收用户的输入。
2. 用户的输入必须要验证。输入的验证有两种类型:服务器端和客户端。顾名思 义,服务器端的输入验证是在输入的数据到达服务器后,在服务器上进行的。客户端 的输入验证是在浏览器上完成的,一般使用 JavaScript 或其他脚本语言。利用客户端 进行输入验证的好处是反应迅速,而且能够减轻服务器的负载。无论是否存在客户端 输入验证,服务器端的输入验证是一定要执行的,因为无法保证用户的浏览器的脚本 特性被打开,而且恶意用户能够很轻松的绕过客户端的验证。
3. 在基于 Java 的 Web 应用中模型对象是以 JavaBean 的形式出项的。模型对象组成 了基于 MVC 设计模型的模型部分。一个模型对象能够用来绑定一个组件的值,以备下 阶段使用。此外,它能够封装需要执行的业务逻辑。
4. 大多数的 Web 应用都包含多个页面,能够使用户从一个页面跳转到另一个页面。 所有的基于 MVC 的设计模式都使用 Servlet 作为控制部分。这个 Servlet 也作为进入应 用的唯一入口。当前的请求之后哪个页面会被显示取决于请求参数的具体值。管理页 面导航是至关重要的。
3 Web 应用设计模型
Model 2设计模型是基于模型-视图-控制器(MVC )设计模式的。正如 Burbeck 所解释的,在 MVC 中有三个主要模块:控制器,视图和模型。控制器作为应用的中心, 所有的用户交互都要通过它。视图包含了应用的显示,而模型用来存储数据和封装应 用的业务逻辑。随后, Struts 框架提供了一个通用框架能够容易的构建 Model 2应用。 最主动的是同样使用 MVC 设计模式的 JSF 。在之后的章节,我们将来讨论这三种设计模 型,并且说明每一种设计模型是怎样来解决之前提到的开发问题。
3.1 Model 2
一个基于 Model 2设计模型的 Java Web应用有一个作为控制部分的 servlet (称为 控制器 servlet )。所有的请求首先被这个 servlet 处理,它通过 RequestDispatcher 对象将请求迅速的分派到合适的视图。在 Model 2中视图是通过 JSP 页面来表现的。 JavaBean 作为 Model 2 的模型部分, 用来在应用中存储数据。 除了存储数据, JavaBean 还用来封装业务逻辑。每个 HTTP 请求都带有一个行为参数,用来指出哪个视图指派给 这个请求。程序员必须在所有的 JSP 页面中为用户接口编写 HTML 标签代码,并且编写 输入验证代码。此外,模型对象被单独的 JSP 页面所管理。
3.2 Struts
Struts 框架是 Model 2设计模型的一个改进。 它提供了一个默认的控制器 servlet , 使得程序员不用非得去编写一个。 Struts 允许在应用配置文件(一个 XML 文件)中编 写导航规则来减轻页面导航的任务,改变导航规则不需要重新编译。除了更简单的页 面导航, Struts 还提供了定制标签库来定义标签代表 HTML 元素。这些标签中的一些用 来处理异常,而且 Struts 支持国际化,能够显示本地化的错误消息。就像 Model 2一 样, Struts 使用 JavaBean 作为模型。此外, Struts 程序员必须编写输入验证代码。
3.3 JSF
JSF 同样使用了一个控制器 servlet ,称为 FacesServlet 。这个 Servlet 是整个 JSF 应用的唯一入口。 JSF 同样使用 JSP 页面作为它的视图,使用 JavaBean 作为模型对象。 与 Model 2和 Struts 不同, JSF 提供了能够写入 JSP 页面的 ready-to-use 的用户接口组件。在 JSF 应用中的页面的调用, FacesServlet 建立了一个组件树来显示 JSP 页面的请 求。大部分的组件还能够触发事件,来构成 JSF 的事件驱动。对于页面导航, JSF 使用 了和 Struts 类似的方法,即允许在一个应用控制文件(XML 文件)中定义导航规则。 JSF 应用与非 JSF 的 servlet/JSP应用的不同在于 JSF 是事件驱动的。 JSF 的用户接 口是一个或多个 JSP 页面,用来服务诸如表单和输入框等 Web 组件。这些组件以 JSF 定 制标签的形式出现而且能够保存数据。一个组件能够嵌套在另一个组件中,有可能形 成一个组件的树状结构。在普通的 servlet/JSP应用中,使用 JavaBean 来存储用户输 入的数据。
4. 运行环境
以下是我们实验的软硬件详细描述。
4.1 Servlet容器
Java Web应用是在 servlet 容器中运行的,在应用中它一个引擎,用来处理接踵 而来的请求资源的 HTTP 请求。在这个试验项目中,我们使用 Tomcat -一个来自 Apache 软件基金会的开源的 servlet 容器,版本号是 6.0。基本上,一个 servlet 容器通过执 行下面的任务来处理一个 servlet :
●创建一个 HttpRequest 对象
●创建一个 HttpResponse 对象
●传递 HttpRequest 、 HttpResponse 对象来调用 Servlet 接口的 service 方法
4.2 测试用客户端
为了进行性能测试,我们使用同样来自 Apache 软件基金会的 JMeter1.9来模拟多 用户。 JMeter 允许用户选择一定数量的线程来执行测试。每个线程模拟了一个不同的 用户。 JMeter 来能允许我们选择完成一次测试的测试次数。 使用 JMeter 来测试一个 Web 应用,你只要直接向某个 IP 地址、上下文路径和端口号发出请求。你也可以将请求参 数包含在 HTTP 请求中。 对于一个测试, JMeter 将服务器的响应时间以毫秒的形式输出。 从响应时间,我们能够得到服务器执行服务的每秒命中次数。
4.3 硬件
为了得到最大的性能度量精度,我们使用不同的计算机来进行应用的测试。运行 应用的是一台 XP 计算机,它的配置如下:Intel Core 1GHz CPU 、 1G RAM。测试用客 户端是运行 JMeter 的 Windows2000计算机,具体配置如下:Intel Core 1GHz CPU 、 1G RAM 。
5结论
我们得到两类实验结果:开发的难易程度和性能。开发的难易程度比较了类的数 目和代码的行数。这些数目显示了遵从某个设计模型来开发一个应用的难易程度。一 个应用包含较少的类和较少的代码行数说明应用相对而言更容易构建。一个应用包含 较多的类说明应用需要花费更多的时间来开发。
性能度量结果是通过比较这两个操作来获得的。查找操作是一个应用中最普通的 操作以及浏览操作。
5.1 应用开发的难易程度
就如表 1显示的,应用 Model 2设计模型需要花费最多的努力,使用 Struts 能够使 问题减轻一点,使用 JSF 最省力。
表 1 应用中类的数目和代码行数
Model 2 设计模型的特点是存在一个控制器 servlet 和多个 JavaBean 类(作为模 型)及 JSP 页面(作为视图)。控制器类通过一系列的 if 语句来负责页面导航规则。 Model 2程序员还必须为输入验证编写代码,在这个实验中是通过在内部编写许多定 制标签库来完成的。在 Model 2设计模型中的其它类是
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[22800],资料为PDF文档或Word文档,PDF文档可免费转换为Word