MVC框架中英文对照外文翻译文献 - 图文

更新时间:2023-12-01 10:44:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中英文对照外文翻译文献

(文档含英文原文和中文翻译)

译文:

Web 2.0下的Spring MVC框架

摘要 - 当要建立丰富用户体验的WEB应用时,有大量的WED应用框架可以使用,却很少有该选择哪一种的指导。WEB 2.0应用允许个体管理他们自己的在线网页,并能与其他在线用户和服务器共享。这样分享需要访问控制器来实现。然而,现有的访问控制器解决方案不是令人很满意。因为在开放且由用户主导的WEB环境下,它满足不了用户的功能需求。MVC框架是在所有的WEB开发框架中最受欢迎的。模型-视图-控制

器(MVC)是一种软件架构,如今被认为是一种体系结构在软件工程模式中使用。该模式从用户界面(输入和演示)分离出了“领域逻辑”(基于用户的应用逻辑),它允许独立地开发,测试和维护每个分离的部分。模型-视图-控制器(MVC)模型创建的应用分离为不同的层次应用,同时在每两者之间建立松散的耦合。

关键字 - Spring MVC, 结构, XStudio, SOA, 控制器

I.绪论

如何确切地定义一个网站为“WEB 2.0”的呢?关于这有着许多不同见解,使它很难精确地下一个确切的定论。但当我们将所有的WEB开发框架过一遍之后它就会变得清晰了。各种基于WEB开发的架构如下: ? Ntier架构(Ntier Architecture)

在软件工程中,多层架构(常被称为n-tier架构)是一种表示层,应用处理层和数据管理层在逻辑上分开处理的客户端-服务器架构。例如,一个应用在用户与数据库之间使用中间件提供数据请求服务就用到了多层体系结构。最为广泛应用的多层体系结构是三层架构。N-tier应用架构为开发者提供了用来创建了一个灵活且可复用的模型。通过打破应用层次,开发者只需修改或添加一个特定的层,而不是要去重写一遍整个应用。它需要有一个表示层,一个业务层或者数据访问层和一个数据层。层(layer)和层(tier)之间的概念常常是可以互换的。 ? 服务导向架构(Service Oriented Architecture)

在软件工程中,服务导向架构(SOA)是一套原则,是一种软件设计开发的方法,基于以可互操作服务形式。这些服务是明确的业务功能,由可重用于不同方面的软件组件(离散代码块和/或数据结构)组成。SOA设计原则被应用到了系统开发和集成的各个阶段。SOA也普遍为消费者的服务提供了一种方式,如基于WEB的应用,以了解可用的基于SOA的服务。例如,一个公司的几个不同部门可能开发和部署了SOA服务在不同的实现语言;他们各自的客户通过访问公开,良好定义的接口能从中获益。XML经常用于SOA服务接口,即使它不是必要的。JSON也开始变得很常见。

? MVC架构(MVC Architecture)

MVC是来自Hyfinity的一种新生代的开发应用和集成工具。基于原生XML,MVC能够使企业规模、基于浏览器的应用快速的开发。为了快速组装完整的交互式应用程序,MVC提供了直观的图形化IDE(集成开发环境)。其中一个使MVC区别于大多数传统方法的关键是信息流的概念,它保留了所采集的基于文档的信息,通过数据绑定和路由校验。这些全部使用原生XML执行。

MVC使用XStudio来开发XML应用,使用XPlatform来运行产生的应用。MVC主要关注交互式自助应用的发展和使用包括以FromMaker闻名的XStudiio在内的工具来建立完整的WEB应用。

II. MVC架构

正如我们在之前章节所讨论的,普遍认为一个应用应有三个主要层次:表现层(UI),应用逻辑,和资源管理。在MVC中,表现层划分为

了控制器和视图。最重要的分隔在于表现层和应用逻辑之间。视图/控制器的分隔相对较少。MVC包含的不仅仅是架构的应用还有典型的设计模式。因此结构模式之类的术语可能被用到,再或者是集合设计模式。 ? 模型(Model)

以特定领域来表现应用操作的信息。模型是应用逻辑层(有时也叫做域层))的另一种称呼。应用(或域)逻辑丰富了原始数据的意义(例如,计算今天是否是用户生日,或者购物车中商品的总额,税和运费)。许多应用利用现有的存储机制(如数据库)来存储数据。MVC并没有特意提及资源管理层次,因为它被理解为底层的或者封装的模型。 ? 视图(View)

使模型渲染到表单适合于交互,典型的是一个用户的界面元素。在WEB应用中经常看到的MVC中,视图是HTML页面和为页面采集动态数据的代码。

? 控制器(Controller)

处理和相应事件,尤其是用户actions,并且可能调用模型和视图的变化。

虽然MVC有不同的特性,控制流程一般如下:

1.用户以某种方式与用户界面进行交互(例如,用户按下一个按钮)。

2.一个控制器处理来自用户界面的输入事件,经常通过注册操作或回调。

3.控制器访问模型,可能采用适当用户的action方法来更新它

(例如,控制器更新用户的购物车)。复杂的控制器通常被设计使用命令模式封装action和简化继承。

4.一个视图使用模型来生成一个合适的用户界面(例如,视图产生一屏购物车内容的列表)。视图从模型中得到自己的数据。模型与视图没有直接关联。(然而,观察者模式可使模型间接通知相关方的变化,包括潜在的视图。)

5.用户界面等待进一步用户交互后开始新的循环。 以上数字概述的模型,视图和控制器之间的关系由基于以下。 A.实现策略

SpringMVC框架是基于分派请求操作的分发器(DispatcherServlet)设计的。有着可配置的处理器映射(handler mappings)、视图解析器(view resolution)、本地化(locale)和主题解析器(theme resolution)同时支持上传文件。 B.SpringMVC的特性

? 明确分工。每个角色——控制器,校验器(validator),命令对象(command object),表单对象(form object), 模型对象(model object), 分发器,处理器映射, 视图解析器等等都有专门的对象来实现。

? 将框架类和应用类作为JavaBeans的配置强大且直接明了。包括通过应用上下文配置中间层引用,例如从WEB控制器到业务对象和校验器。

? 适用性,不受干扰性,和灵活性。根据给定场景,用一些参

数注解(例如:

@RequestParam,@RequestHeader,@PathVariable,还有很多)来定义你需要的控制器方法。

? 可复用业务代码,无需复制。使用已有的业务对象作为命令对象或者表单对象而不是通过映射来继承特殊的框架基类。 ? 可定制的绑定和校验。将类型不匹配作为应用级别校验错误,能保留值,本地化日期和数字绑定等,而不是使用需要手动解析并转换业务对象的且只是字符串的表单对象。 ? 可定制的处理器映射和视图解析器。处理器映射和视图解析器策略的范围从简单的基于URL的配置到复杂的专用解析策略。Spring比WEB MVC框架更加灵活在授权一个特定技术上看来。

? 灵活的模型传输。模型传输是支持根据名字/值的Map,很容易集成任何视图的技术。

? 可定制的本地化和主题解析,支持JSP,无论是否使用Spring标签库,支持JSTL,支持不需要额外过度的Velocity等等。 ? 一个简单且强大的JSP标签库称为Spring标签库,提供的功能如数据绑定和主题。定制标签允许最大程度的灵活性就标记代码而言。

? 在Spring2.0中引入的一种JSP表单标签库能使在JSP界面中写表单更便捷。

? Beans的生命周期范围是当前HTTP请求或HTTP会话。它并不

是Spring MVC本身具体特征,而是Spring MVC使用了WebApplicationContext容器的。

图1.MVC架构

C.可插拔性的其他MVC的实现

如果你不想使用Spring的WEB MVC,但打算使用Spring提供的其它功能,你可以很容易地将你选择的WEB MVC框架和Spring整合。直接通过Spring的Context-LoaderListener启动一个Spring根应用上下文,通过它的ServletContext属性(或者Spring的各种帮助方法)来访问来自Struts或者WebWork的action。没有\参与, 所以也没有针对它整合的必要。从WEB层的角度看,你只要使用Spring作为库,带有根应用上下文的实例作为切入点。

你所注册的beans和Spring的服务随时可访问及时在没有Spring的WEB MVC的情况下。Spring并没有在这种情景下与Struts或者WebWork竞争。它只是提供了纯WEB MVC框架在很多领域所不具备的,从bean配置到数据访问和事务处理。所以你可以用Spring中间层和/或数据访问层来丰富你的应用,及时你只是想使用,好比,JDBC和Hibernate这样的抽象事务管理。

Spring的WEB MVC框架同很多其他的WEB框架一样,是由请求驱动的。围绕着一个能将请求分发到控制器的servlet设计,它还提供其他有利于WEB应用开发的功能。然而Spring的分法器所做的不仅如此。它完整的整合了Spring Ioc容器使你能够使用Spring所具有的其他功能。

Spring Web MVC分发器的请求处理工作流在下方的图说明。模式理解阅读器会识别分发器是“前端控制器”设计模式的表达式(这是一种Spring WEB MVC与其他许多领先框架共享的模式)。 分发器是一个真正的Servlet(它继承至HttpServlet基础类),并同样要在你的web应用的web.xml文件中声明。你需要映射你想让分发器处理的请求,通过在同个web.xml文件中使用URL映射。这是标准的J2EEservlet配置。

...

example

org.springframework.web.servlet.DispatcherServlet 1

example *.form

在上面的例子中,所有以.form结尾的请求会被

exampleDispatcherServlet处理。这只是配置Spring WEB MVC的第一步。你现在需要使用Spring Web MVC框架配置各种beans。当初始化一个分发器,框架会查找一个名为

[servlet-name]-servlet.xml在你的Web应用的WEB-INF目录下并创建里面所定义的beans,重定义所有全局同名定义的beans。

图2.请求处理工作流

Spring分发器使用特有的beans来处理请求和显示相应的视图。这些beans就是Spring框架的一部分。你可以在

WebApplicationContext中配置它们,配置方式就象配置其它bean的方式一样。然后,对于大多数bean来说,已经提供了合理的缺省配置,所以你最初不需要配置它们。

在你启动好分发器后,且有一个请求触发了指定的分发器,接下来分发器按以下步骤处理请求:

1.查找WebApplicationContext,并绑定该请求成为一个属性,使控制器和其他处理器在处理过程中能使用。缺省绑在分发器.WEB_APPLICATION_CONTEXT_ATTRIBUTE这个关键字上。 2.绑定本地化信息解析器到请求上,使处理过程中的处理器在处理请求(显示视图,准备数据等)时能解析本地化信息。如果你不需要本地化信息解析器,就忽视它。

3.绑定主题解析器到请求上,让视图之类的元素能决定使用哪个主题。如果你不需要主题,你可以忽视它。

4.如果你指定了多文件解析器,请求会被检测是否使用了multiparts;若是,请求会保存到MultipartHttpServletRequest中,以便处理过程中的其他处理器进一步处理。

5.查找合适的处理器。如果找到,为了准备模型数据或渲染视图,与该处理器(预处理器,后处理器,控制器)相关的执行链会被执行。

6.如果模型返回数据,就显示视图。否则,(可能由于安全因素,被前处理器或后处理器拦截了请求),无视图显示,因为请求已经被结束。

III. 控制器实现

Spring 2.5引入了基于注解的编程模型,MVC的控制器可以使用诸如@RequestMapping, @RequestParam, @ModelAttribute等注解。注解

本文来源:https://www.bwwdw.com/article/c3ft.html

Top