已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MVC体系结构建模和实现的比较与分析概要这是一个模型的比较研究,它描述了建立在组件的集成,帮助轻松访问web服务的基于模型-视图-控制器的体系结构范式。MVC方法简化了三个框架的大规模分布式web应用程序的开发和维护水平。首先是Big Blob框架,在这所有的处理逻辑是GUI的一部分。第二是容易在命令行或web接口工作的MVC架构。第三是改良的MVC架构。在实现阶段,MVC架构处理J2EE和jsp servlet的web和网络编程环境,还应用多个框架的MVC架构给予一些新概念特权(比如Struts和Spring组件)。一般术语用户界面,可视化和建模。关键词GUI, COCA, GET, POST, HTTP, Struts, Spring, Model, View, Controller 等。第1章 介绍现如今,网络存在非常复杂的问题。自从许多公司和组织对编程问题的复杂度和性能要求的提高,不同类型通讯设备的复杂性也跟着提高,业务上要求应用程序使用网络和许多通讯设备。所以随着网络数据承载量的增加我们必须开始重视结构体系的问题。文献的主题是确定Big Blob、MVC和改良的MVC体系结构的优缺点以及根据体系模型各个方面的实现进行一组比较和分析。接下来用有利于许多框架结构的JSP-Servlet编程实现。第2章 相关工作各种框架已经在文献中提到,我们将在下面进行讨论。2.1 Big Blob体系结构一个常见的风格是将所有的处理放进GUI中。一个常见的结构是“Big Blob”地使用这种结构。只要模型,逻辑足够小以至于不值得为之投入一个单独的类,这个工作便是正确的。2.2 MVC体系结构编程和图形用户界面(GUI)库使得更容易实现模型-视图-控制器(MVC)设计。MVC首次引入了Trygve Reenskaug 这个Smalltalk开发人员1979年在施乐帕洛阿尔托研究中心,它有助于分离数据访问和业务逻辑的显示给用户的方式(图1)。更准确的说MVC可以分成以下三个要素。2.2.1 模型模型表示数据和规则管理访问和更新的数据。在企业软件,一个模型通常作为软件近似真实的过程。图1 一个一般的MVC实现2.2.2 视图视图呈现的内容模型。它指定模型数据应该如何。当模型数据变化时,视图必须更新其表示。这可以通过使用一个模型,视图注册到模型的更改通知,或拉模型,视图负责调用模型时需要获取最新数据。2.2.2 控制器控制器将用户的交互与视图转换为模型将执行的行动。在一个独立的GUI客户端,用户交互可以单击按钮或菜单选择,而在企业web应用程序,他们看起来像GET和POST HTTP请求。根据上下文,一个控制器也可以选择一个新的视图例如,一个web页面的结果用户。2.3改良的MVC架构最近的一个实现MVC设计将控制器放在视图和模型中间的位置。这是常见的苹果Cocoa框架的设计(图2)。cocoa和cocoa触摸框架令Mac OS X和iOS紧密集成到Xcode开发经验中。cocoa的高级api很容易添加动画,网络、应用程序和本地平台外观和行为而只需要几行代码。图2 一个将控制器放在视图和模型中间的MVC设计第3章 比较BIG-BLOB、MVC以及改良的MVC结构体系“Big Blob”项目更难阅读,维护和增强。文字不能描述当我开始构建更大的项目时的感觉。只要“模型”,逻辑,太小,不值得为之投入一个单独的类,便是正常的。然而,混合模型表示通常使程序难以阅读,和程序的不可避免的增长会导致一片混乱。这不能在web接口进行简单的独立测试。甚至在这种类型的任何部分还未实现时改变模型。模型-视图-控制器(MVC)架构是容易实现图形用户界面(GUI)库,因为它提供了一个真正的脱钩的每一部分。所以改变模型和视图部分变得更容易,它将通知更新模型并且不携带视图的引用,而是使用一个事件通知模型通知感兴趣的变化(图3)。这个强大的设计的效果之一是,许多视图可以有相同的底层模型。数据模型发生变化时,每一个视图都由一个属性改变事件通知,可以相应地更新本身。图3 运用MVC的JAVA SE应用程序3.1 UI模型结构的解决方案模型-视图-控制器结构可以很容易地画一些可能的解决方案来实现架构。首先单独的用户界面模式使通过这种结构的巨大的改进的朴素易用、增强和维护更容易。其次模型并不知道用户界面。最后,模型通过重写模型类的toString()方法代表本身的文本或图形。使用Cocoa触摸框架的改良MVC体系结构使得Mac OS X和iOS紧密集成到Xcode开发经验。cocoa的高级api很容易添加动画,网络、应用程序和本地平台外观和行为而只需要几行代码。在这个结构中模型封装应用程序数据,视图显示和编辑数据,控制器调节两者之间的逻辑。通过这种方式分离责任,你最终的应用程序将更容易设计、实现和维护。3.2 MVC架构与jsp servlet环境MVC架构能够解决一些问题的web和网络编程,但仍有很多东西丢失。它是集中在JSP页面的导航中,所以体系结构的观点内有一定发展范围。在这个过程中未来发展是Model 2架构。这个问题通过一起使用Servlet和JSP得到解决。Servlet处理初始请求和部分处理数据。它设置bean然后结果转发到一个JSP页面。Servlet决定列表中的哪个页面将被显示。图4 MVC架构与jsp servlet在这个模型中所有的控制和应用程序逻辑都由Servlet处理。Servlet是用java编程语言编写的。所以它也容易处理的编程Servlet的一部分。在这种情况下的服务成为权力全面完整的应用程序,它已成为应用程序的中心点。在模型架构Servlet成为所有常见任务的看门人。它提供了公共服务,如身份验证、授权、错误控制和应用程序的遵循。此体系结构解决了大部分的问题。但仍有许多新的问题出现时应用此架构。3.3应用结构与多个框架网络和互联网越来越多领域和应用程序的需求正在增长。一个框架是不能处理应用程序的体系结构。满足电流要求的应用程序有必要设计一个体系结构实现框架。Struts框架设计和开发web应用程序的前端控制(图5)。它提供了各种功能的用户交互的应用程序。它也遵循MVC设计特性。Spring框架是设计来处理各种任务。Spring的工作桌面和基于互联网的应用程序。它遵循MVC的主体。同时使用Struts和spring框架在单个应用程序与应用MVC设计主体,这样可以提高应用程序的性能。Struts框架包括三个主要模块,简要描述如下。图5 Struts模型结构首先是块控制表示完整的模型的一部分。这包含JSP文件后为您的应用程序的国际化而写的一套JSP自定义标记库。第二块是代表控制器。这是为了导航完整应用程序。这包含XML配置文件,它包含标签的导航路径。第三块是模型。这部分业务逻辑的工作,获取和存储数据到数据库中。它包含以下Java bean Enterprise Java bean数据库。下面的图显示了struts框架中的组件的工作。图6 Sturts架构组件3.3.1 Struts中的MVCSpring MVC 的MVC的主要三个部分如下。Servlet控制器(控制器)的Java服务器页面或其他表示技术(视图部件)应用程序业务逻辑:任何形式去适配应用程序(模型部分)。Struts是一个框架,它实现了一个功能强大且灵活的控制器并基于服务工作模式。Struts的主要优势是:集成的灵活性:Struts架构提供了灵活性选择要使用视图和模型。视图是基于插件的概念。一个插件是一个动态的机制,通过一套组件或组件,实现在我们的应用程序可以通过简单地修改应用程序的配置被另一个取代的特定的功能(图7)。图7 Struts的类图该模型通过javabean实现,从而使其与其他框架的集成。它是由Solid社区:Struts是开源范围内合并最重要的组织Apache软件基金会的项目。在Sun(Sing,2002),Sun建议为Web层使用Struts框架。Struts由一下三个重要的组件组成:(1) ActionServlet(模型的前端控制器),负责应用程序配置和接收和分析客 户的请求。这个组件配置文件的摘录(strut-config.xml)一般的配置参数,组件的集合,定义其行为(插件),每个请求的属性。执行这些任务之后,它都代表控制这些请求处理器。(2) 请求模式器(请求调度模型中),创建一个实例相关的行动(命令模式)接收到的请求并执行它。(3) 操作模型中(命令)。为每个操作或使用情况下,开发人员创建一个动作(对象),继承自动作组件。在Struts配置文件每个动作请求相关联类型。3.3.2 Spring组件在Spring也遵循MVC的主体。它被设计为桌面和基于互联网的应用程序。Spring包含三个核心合作组件。(1) 控制器:处理导航逻辑与业务逻辑的服务层。(2) 模型:控制器和视图之间的合同包含渲染视图所需的数据填充的控制器。(3) 视图:呈现的请求的响应从模型中获取数据。在spring MVC核心组件如下。a) 前置控制器:春天的前端控制器实现。b) 它是第一个控制器进行交互的请求,也可以说它是Servlet的一个实现。它控制应用程序的完整流程。c) 控制器:用户创建的组件来处理请求封装导航逻辑代表服务对象的业务逻辑。d) 视图:负责渲染输出。不同的观点可以选择不同类型的输出结果和查看设备的基础上,通信设备。e) 模型和视图:spring框架的核心部分。它实现了应用程序的业务逻辑。它是由控制器控制。它存储业务逻辑和与之关联的视图。当它执行视图的名称的数据。f) 视图解析器:显示输出取决于收到模型和视图的结果。它是用来实现逻辑视图名称映射到实际的视图。这部分标识和实现输出媒体是什么以及如何显示它。g) 处理程序映射:策略接口使用前置控制器传入的请求映射到单个控制器。它标识请求,并调用相应的处理程序提供的服务。h) 下面的图显示了模型将工作。在这个前置控制器应用程序的入口点。Struts部分执行工作并将请求发送给前置控制器(图8)。控制器决定处理程序。那么它将调用控制器。模型和视图控制器将执行。图8 spring框架的序列流应用程序第4章 提出的方法这种方法是基于应用两个框架struts和spring应用程序开发场景。序列图的组合应用程序解释如上所述,这是应用程序的主要驱动力。这种方法假定web应用程序的基本知识是必要的。上述概念做了一个测试,发现成功的工作。上述体系结构的主要优点如下。(1) 它将提供一个非常干净的部门之间的动作形式等操作,控制器,处理器,javabean模型和视图。(2) Spring的MVC非常灵活。与Struts,这迫使你的行动和表单对象具体继承利用两者的优势。(3) Spring MVC是完全基于接口。每一部分的Spring MVC框架是可配置的。(4) 它提供了控制器,使其易于从用户界面处理的请求。(5) JSP或任何其他技术可以用于显示视图,结果给用户的任何输出设备。(6) Spring配置控制器通过控制反转。这使得它们易于测试和与其他对象由spring集成。(7) 与Struts web层相比Spring MVC web层通常更容易测试Struts web层相比,由于避免强迫混凝土继承和显式依赖前置控制器。(8) Struts框架设计仅为web接口的目的服务。spring框架开发的桌面和网络应用程序。当两个框架作为结合它将提供实现的灵活性。第5章 实现不同框架基于J2EE应用程序模型,促进发展。其中一些是与特定的服务器和工具集成的相应的J2EE供应商。过去几年也有一个Solid社区支持的开源框架和广泛传播。为了选择最合适的框架为目的,进行了一项调查,关注开源框架,因为它可以提高性能的大型数据库应用程序处理的请求数量。廉价的成本和技术成熟促成了其中的一些。一个合适的框架必须达到以下两个目标:首先,它必须适应我们的模型的规范,其次,它必须是一个很好的框架,描述的背景。在分析最常用,广泛传播开源框架的Java社区(Struts, Cocoon, Maverick, SOFIA, Spring, WebWork, Tapestry, Turbina and JSF),它注意到,这些完全满足既定的要求。所以它已经决定使用不同的框架为每个模型的部分(模型、视图和控制器):它选择Struts的控制器,Coocon的视图和StrutsEJB的模型。第二点,它描述每个框架以及他们如何融入我们的模型。图9模型结构该模型的主要目标是简化基于J2EE平台开发大型应用程序,从而提供一个结构化的建筑设计,它通过最佳的的途径允许一个系统的主要元素和综合现有模型,模式和框架的完整解耦。在这个模型中,控制器作为应用程序的入口点。它只使用两种模式:实现拦截过滤器和服务工作。拦截过滤器是用于我们的模型实现预处理程序请求;该系统最初管理条目请求从客户表示层。有不同类型的请求,每一个需要一个特定的处理方案。因此,当一个请求到达应用程序,它应该通过一组验证之前的主要处理阶段称为前端控制器身份验证、会话验证、客户端IP地址检查,请求授权,数据整理,听觉或使用的浏览器类型。拦截过滤器模式是一个灵活和高度解耦方法,拦截请求时,应用一组过滤器,因此拒绝或允许请求到达最初的过程。前端控制器模式描述了一个中心点管理请求。为了达到一个更大的灵活性和视图和模型之间的独立性,前端控制器只假定请求分析任务,委派请求调度程序选择的视图和行动来执行。分析阶段后,请求分配器将负责选择封装了操作执行的命令。一旦这个命令生成结果,请求调度程序选择下一个视图将显示给用户。授权请求中这些任务调度程序给我们的模型提供了一个更大的灵活性,因为它可以在场景中通过改变组件的行为引入新的视图或模型。命令模式代表了每个通过对象的请求,因此提供了一个非常简单的方法引入新业务。在我们的模型中,命令模式负责封装请求信息,参数和当前状态到一个命令对象包含业务逻辑。这个命令是通过网络发送到模型,最后执行(EJB命令)。通过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人宠物寄养协议书
- 供应商广告合同范本
- 常州市武进区疾病预制中心公开选调工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 供应协议书合同模板
- 山东昌乐传媒集团面向全国招考专业技术人员易考易错模拟试题(共500题)试卷后附参考答案
- 宿迁江淮水利集团公司2025年下半年度招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 冷冻品销售合同范本
- 养生保健服务协议书
- 个人合伙散伙协议书
- 案件委托协议书范本
- 乡镇卫生院心理健康服务制度
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 2025年中考数学技巧专项突破:逆等线之乾坤大挪移(解析版)
- (DB45T 2522-2022)《桥梁缆索吊装系统技术规程》
- 【金管局考试计算机岗】考卷及答案
- 《担保培训资料稿》课件
- 初中英语高频词汇表
- 汽车机械制图(第二版)试题试卷及答案2套
- 某某市畜牧路供热管网工程全套资料表格
- 物业工程夜班岗位职责
- 学校校服选用采购会议记录
评论
0/150
提交评论