JAVA外文文献翻译基于Java技术的Web应用设计模型的比较研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中文翻译
基于Java技术的Web应用设计模型的比较研究
来源:School of Computer Science and Engineering University of New South Wales
Sydney, NSW 2052, Australia
作者:Budi Kurniawan and Jingling 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这三种模型分别构建三个不同版本的在线商店应用程序来比较和评价这三种模型在应用程序开发和性能上的差异。
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程序员必须编写输入验证代码。