使用XML、spring及struts框架的多框架分布式应用程序的MVC设计模式外文翻译资料

 2022-09-16 10:09

英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


使用XML、spring及struts框架的多框架分布式应用程序的MVC设计模式

原文作者:Praveen Gupta, Prof. M.C. Govil

摘 要

模型视图控制器(MVC)是一种分离用户接口逻辑与业务逻辑的基础设计模式。现如今,应用程序的规模非常大,而MVC模式可以减弱应用程序中不同应用层之间的耦合关系。本文阐述了一个基于MVC模式和J2EE平台的web应用程序框架,并使用XML对其进行扩展,从而让这个框架更具灵活性、可扩展性和可维护性。这是一个多层系统,包括了视图层、业务层、数据维持层以及数据库层。这种分离式代码提高了程序的可维护性和重复利用性。在这片论文中,我们使用spring和struts架构实现MVC框架。我们的主要工作是研究如何利用MVC模式的思想,使用多框架来设计应用程序,使它相较于单框架程序显得更加简洁。

关键字:MVC框架,spring,struts

1.简介

如今的网络是一个非常复杂的系统。企业与组织的需求与日俱增,使得网络编程的复杂度也越来越高,不同类型的通信设备的复杂性也不断增加。商业需求要求产品使用网络及许多通信设备,因此,随着互联网上的数据下载量的增加,我们必须对程序的结构给予足够的重视。

随着J2EE平台的日趋成熟和广泛应用,基于Java的Web应用开始进入框架时代。由于为Web应用提供了现成的通用的框架,即预备的软件架构和相关的软件包,因此使用Web应用框架可以大大地提高开发Web应用的速度和效率,规范开发的过程。同时基于MVC的Web框架成为了其中的主流框架,如Struts、Spring、Webworks、jsf等。

MVC 架构是随着 Smalltalk Language 语言的发展提出的,它是一个著名的用户界面设计架构。MVC 英文即 Model-View-Controller(模型-视图-控制器),即把一个应用的输入、处理、输出流程按照 Model、View、Controller 的方式进行分离,这样一个应用被分成三部分——模型、视图和控制器。所谓 MVC 设计模式,是指一种划分系统功能的方法,是为那些需要为同样的数据提供多个视图的应用程序而设计的,它实现了数据层与表示层的分离,特别适用于开发与用户图形界面有关的应用程序。

MVC 设计模式的基本结构定义为:1、控制器,用来处理用户命令以及程序事件;2、模型,用来维护数据并提供数据访问方法;3、视图,负责数据的显示。

尽管MVC设计模式很早就出现了,但在Web应用的开发中引入MVC却是步履维艰。主要是存在着两种开发模式:JSPModel1和JSPModel2。

1.1 无MVC模式

在网络发展的最初阶段,网页是用HTML来设计的。HTML只是一种纯文本,是第一种可以在互联网上运行的标记语言。到现在,它仍然是所有基于互联网的编程语言的组件。用户需要与静态页面进行交互,网页上显示的信息需要手动改变。随着时间的推进,出现了对一种语言的需求,这种语言能够与用户进行交互,同时网页也能在每次用户发出请求时自动更新。

1.2 MVC模型一

架构上的第一次重大变化来自于MVC模型一架构的提出。在早期的Java web应用中,JSP占有非常重要的地位,JSP文件负责实现显示、业务逻辑和控制流程,从而快速地完成应用开发,很多的web应用就可以仅由一组JSP页面构成。这种以JSP为中心地开发模型称之为模型一。

这种架构是在以页面为中心的基础上实现的。在这个模型中,java服务器页面(JSP)控制程序的表述、逻辑业务和流程。该模型提出了业务逻辑的概念。业务逻辑用Java Bean、脚本与表达式的方式进行硬编码。这种代码被用于JSP页面的编写。举个例子,当我们想要根据接收到的输入数据传输JSP应用程序的流时,即可应用这个模型。

在模型一中,JSP页面独自响应请求并将处理结果返回客户。总的看来,这个模型的最大好处是实现起来比较简单,可以很好的满足小型应用的需要,但是它把业务逻辑和表现混合在一块,不能满足大型应用的要求,所以其局限性是非常明显的。大量使用模型一,常常会导致页面被嵌入大量的script或Java代码。特别是当需要处理的业务逻辑比较复杂时,情况会变得非常的严重。这样会给web开发带来一系列问题:

应用的实现一般是基于过程的,一组SJP页面实现一个业务流程,如果要进行改动,必须在多个地方进行修改。这样非常不利于应用的扩展和更新。

2.由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在JSP页面中,没有进行抽象和分离。所以非常不利于应用系统业务的重用和改动。

于是,为了解决这些问题,就出现了另一种开发模式,那就是JSPModel2。

1.3 MVC模型二

模型一架构可以解决一些网络和互联网编程的问题,但仍然忽略了许多问题。它是以JSP页面的指示为中心,因此从架构的角度看,它会限制进一步的发展。在这个过程中,下一个发展就是MVC模型二架构。该架构通过使用Servlet和JSP来解决问题。Servlet用于处理初始化请求,并能处理部分数据。它先建立beans,然后将结果转交给某一个JSP页面。Servlet在众多页面中挑选出要被显示的那个页面。

在模型二架构中,JSP页面仅仅用于视图层,业务逻辑功能已经被移出JSP页面。这使得页面更容易被表示,并减轻页面的负担,从而使它更易于在互联网上显示。

在这个模型中,所有的控制与应用逻辑都交给Servlet处理。Servlet由Java编程语言编写,因此,处理Servlet的编程部分也更加的简单。在这个脚本中,Servlet成为了整个应用程序的动力源泉,是整个应用程序的中心。

在模型二架构中,Servlet成为了所有共同任务的看门人。它提供一些共同的服务,如认证,授权,差错控制和后续应用等。

该架构的优势应该是很明显的。

首先,它将计算和显示清楚地分开了,在JSP页面上没有出现处理过程,在

Servlet或业务逻辑中没有数据格式。这种分离的另一个好处是Java程序员可以专注于Servlet代码,HTML编写者可以专注于JSP;

第二,控制器Servlet做页面上的所有的决定。在页面和逻辑中不会出现任何决策,这就提高了一个应用程序的性能和可扩展性,因为请求可以被重定向到架构的不同的组件,甚至是不同的服务器。

但在应用过程中,该模型仍然出现了许多新的问题。

2.多框架应用架构

网络与互联网是快速发展的领域,对于应用程序的需求也在不断增长。一个单框架的应用程序无法处理程序的架构问题。为了满足如今对于应用程序的要求,有必要去设计一个多框架的架构。

Struts是Apache基金会Jakarta项目组的一个开放源码项目,它采用了基于Web的MVC模式,将模型组件、视图组件、控制器组件这些概念分别对应到了不同的web应用组件中,因此,可以说Struts架构是MVC设计模式的具体实现。Struts框架被设计并开发来用于web应用程序的前端控制。它为应用程序提供了多种与用户进行交互的特点。

Spring实现了MVC的核心概念,它为控制器和处理程序提供了大量与此模式相关的功能。并且当向MVC添加反转控制时,它使应用程序高度解耦,提供了通过简单的配置更改即可动态更改组件的灵活性。Spring框架被设计用来处理多种任务。它也是应用于基于桌面和互联网的应用程序。

在一个应用程序中同时使用struts和spring框架,并应用MVC设计原则可以提高应用程序的性能。

2.1 Struts框架的组件组成

首先是视图组件,该组件控制整个模型的图像部分。基于struts的应用程序中的视图部分通常使用JSP技术来构建。JSP页面包含称为“模版文本”的静态HTML(或XML)文本,又可以插入struts提供的自定义的标记库,通过这些自定义标记可以非常好地和系统的模型部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和模型部分中的ActionForm的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能,因而可以简化国际化用户界面的开发过程。

第二个组件是控制器,应用程序的控制器部分集中于从客户端接收请求(典型情况下是一个运行浏览器的用户),决定执行什么业务逻辑,然后将产生下一步用户界面的责任委派给一个适当的视图组件。在Struts中,控制器的基本组件是一个ActionServelt类的servlet。这个servlet通过定义一组相应的映射(由Java接口ActionMapping描述)来进行配置。每个映射定义一个与所请求的URI相匹配的路径及一个Action类(一个实现Action接口的类)的完整类名,这个类负责执行系统所期望的业务逻辑,然后将控制任务分派给适当的视图组件来进行响应。

第三个组件是模型层。基于Struts的系统中的模型部分可以分为两个部分。一是系统的内部状态,二是能够改变状态的行为。通常web应用程序将系统内部的状态表示为一组一个或多个的JavaBean,使用属性印(properties)来表示状态的细节。在Struts架构中,应用程序的状态通常存储在一组ActionForm Bean和值对象中,根据系统的复杂度也可以使用像Entity EJB和Session EJB等组件来实现系统状态。

2.2 Spring中的MVC模型

Spring框架中的MVC模型主要分为三个部分:Servlet控制器(控制部分)、JSP或者其他任意视图技术(视图部分)、任何适用于应用程序的形式的业务逻辑(模型部分)。

Spring框架同样遵循MVC模型的原则。它更多的被设计应用于基于桌面和互联网的应用程序。Spring框架由三个核心协作组件构成。1.控制器:用于处理引导逻辑以及业务逻辑与服务层的交互。2.模型:负责完成控制器与视图之间的联系,包含了控制器用于控制视图的数据。3.视图:呈现程序对于用户请求的响应,并从模型层提取数据。

Spring MVC的核心组件如下:

Servlet调度器:Spring框架的前端控制器的实现。这是与用户请求进行交互的第一个控制器。我们也可以认为它是Servlet的实现。它控制了整个应用程序的流程。

控制器:用户创建的组件。用于处理请求,封装引导逻辑并委托给业务逻辑的服务对象。

视图:负责输出显示内容。根据不同的结果和视图服务、通信服务,可以为不同的输出形式选择不同的视图。

模型与视图:模型与视图是spring框架的核心部分。它实现了应用程序的业务逻辑。它受到控制器的控制。模型与视图中存储了业务逻辑以及与之相关联的视图。每当它执行的时候,它会根据视图的名字来提取数据。

视图分解器:输出内容如何显示是由从模型与视图中接收到的结果决定的。它被用于将逻辑视图名称映射成实际的视图实现。这个部分识别并实现了输出媒体以及显示方式。

处理器映射:用于Servlet调度器中将输入请求映射成独立控制器的策略接口。它识别请求,并调用相应的处理器来提供服务。

下面的图示展示了该模型的工作过程。在该模型中,Servlet调度器是应用程序的入口。Struts部分完成它的工作并将请求发送给Servlet调度器。Servlet决定所要用到的处理器,处理器再执行模型与视图模块。

Spring与其他的Web框架一样,要解决的问题主要如下:

(1)将Web page的输入元素封装为一个请求数据对象。

(2)根据请求的不同,调度相应的逻辑处理单元,并将请求数据对象作为参数传入到处理器单元。

(3)逻辑处理单元完成运算后,返回一个结果数据对象。

(4)将结果数据对象中的数据与预先设计的表示层相融合并展现给用户。

3.提出方法

这个方法是在联合应用struts和spring两个框架的基础上对应用程序进行开发。结合起来的应用程序的序列图如上图所示,这个序列图是整个应用程序的主要驱动。这个方法假定基础的网络应用程序知识是至关重要的。我们对上述理念进行了测试,结果证明这个方法是合理可行的。上述架构的主要优点有以下几点:

1.它可以将动作、动作形式、控制器、处理器、JavaBeans模型和视图清楚的分离开。

2.Spring的MVC模型非常灵活。不同于struts架构,它要求将动作和表单对象映射为具体的继承。我们将两者的优点结合起来。

3.Spring架构的MVC模型是完全以接口为基础的。Spring架构的MVC框架的每个部分都是可配置的。

4.它提供了控制器,使得程序更容易处理对来自用户接口的大量请求。

5.我们可以利用JSP或者任何其他的技术来显示视图,最终输出到用户的任何终端。

6.Spring控制器是通过控制反转来配置的,这使得它们可以更容易与spring架构管理的其他对象进行测试与整合。

7.由于Servlet调度器禁止强制性的具体继承以及对控制器的明确依赖,spring框架MVC模型的网络层与struts框架的网络层相比更易测试。

8.该架构的网络层是一个在业务对象层之上的较轻薄的层,这更有利于实际操作。

9.Struts框架的设计目的仅仅是针对网络接口。Spring框架是为了桌面和互联网应用程序而开发的。当两个框架结合起来一起发挥作用时,可以提供更加灵活的实现。

4.总结

多框架的架构与单框架的架构相比能够更好的工作。利用大规模应用程序开发中的多框架所带来的高效率,我们可以提高大型数据库应用程序在处理大量请求、处理能力和最大使用限度等方面的性能。同时,它也会为企业和程序员打开新的世界,创造新的商业机会。为了使应用程序达到更好的效果,我们推

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[148716],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。