在JAVA开发为Web制定MVC框架外文翻译资料

 2022-01-14 23:37:31

翻译内容:

在JAVA开发为Web制定MVC框架

Aditya Singh#1, Piyush Chawla#2, Karan Singh#3, Dr. Ashutosh Kumar Singh

摘要:

传统web开发方法的僵化使得维护和扩展web应用程序变得困难。模型、视图和控制器设计模式的出现改变了这种情况。本文通过对Struts 2框架和Spring MVC框架的研究,结合相关技术,设计一个轻量级MVC框架,方便中小型web应用程序的开发过程。

关键词- MVC;框架;Spring MVC;Struts 2;依赖注入;解耦

I.介绍

检索存储的数据并向用户显示数据(DoD)是大多数计算机系统的基础。用户对数据进行修改后,数据库(或数据存储)就会对其进行更新。数据流可能会促使一些人将计算机系统的这两个部分粘在一起,以最小化所需的编码并提高系统的性能。当您开始考虑大多数时间用户界面和存储的数据都是独立更改的这一事实时,这种看似自然的方法将面临一个主要障碍。可以用Gmail (Alphabet Inc.提供的一种基于网络的电子邮件服务)的例子来说明这一点。视图保持不变,而数据(电子邮件)变化更频繁。一个明显的解决方案是分离(模块化)这两个基本操作。但是问题来了,怎么做?

模型-视图-控制器(MVC)模式是一种流行的设计模式,全世界的开发人员已经使用了几十年。20世纪70年代,Trygve Reenskaug首次提出了这个概念。它工作在关注点分离的概念上(稍后将讨论)。模型与数据库系统(或简单的数据存储系统)交互,并响应数据请求(通常来自视图)。视图部分与国防部有关。控制器响应事件(鼠标点击、键盘敲击等),并通知模型和/或视图做出相应的更改。

II.文献综述

在讨论MVC之前,首先要讨论软件设计模式(或者设计模式,或者仅仅是模式)。面向对象应用程序的开发之后是定期维护,需要定期更新。一个应用程序具有较高的复杂性,不易维护。应用程序中紧密耦合的模块使得不熟悉开发的开发人员几乎不可能在不影响其他模块功能的情况下对一个模块进行某些更改。这使得任务非常具有挑战性和耗时,导致低生产率[10]。拯救来了,设计模式。

设计模式是一种解决重复问题的系统方法。它不是一个完整的解决方案,而更像是一个模板(相当于体系结构中的blueprint)[7]。在[2]这本书中的22个经典设计模式中,观察者模式[2](一个到多个依赖项)是MVC模式的基础。尽管该书没有将MVC描述为模式本身,但它确实将其作为一个用户场景提到。一些文本摘录自本书[2]:

·两个文本提到了一个重要的概念,解耦(首先是视图和模型之间的解耦,其次是视图和控制器之间的解耦)。

·'改变视图响应用户输入的方式而不改变它的视觉表示'

这两个文本提到了一个重要的概念,解耦(首先在视图和模型之间,其次在视图和控制器之间)。

A. 耦合

“耦合”是描述软件系统(通常是类)中两个实体[5]之间关系的术语。当一个类使用另一个类,或者与它通信时,它被称为“依赖”于另一个类,所以这些类是“耦合的”。至少其中一个“知道”另一个。其思想是,我们应该尽量保持系统中类之间的耦合“松散”。因此,“松耦合”或有时是“解耦”(尽管在英语中“解耦”意味着“根本没有耦合”,但人们经常使用它来表示实体之间的“松耦合”)。松耦合是好的,因为我们不希望系统的组件严重依赖彼此。我们希望保持我们的系统模块化,这样我们可以安全地改变一部分而不影响另一部分。当两个部分松散耦合时,它们彼此之间的独立性更强,当其他部分发生变化时,它们断裂的可能性更小。

B. MVC

模型视图控制器模式最初是由Trygve Reenskaug在20世纪70年代提出的。在MVC架构中,系统分为3个独立的组件。应用程序数据由模型管理,模型负责数据的存储和检索。View的任务是将模型可视化地呈现给用户并获得响应。控制器是模型和视图[8]之间的核心部分。它解释用户请求并通知视图和模型做出相应的更改。

MVC架构的优势

1)关注点分离:MVC的所有组件都是模块化(或一般化)的,有利于业务逻辑的重用。

2)开发人员的专门化和关注点:web设计人员或用户界面(UI)开发人员可以在不考虑模型或业务逻辑的情况下设计web页面或UI。此外,数据管理员可以在不考虑UI的情况下进行模型工作。

3)独立团队并行开发:上述任务可以同时进行,相互依赖性较小,时间利用率较高。

MVC模式已经存在一段时间了。MVC的引入是由Trygve Reenskaug(如前所述)在Smalltalk-76中完成的。当时他正在参观施乐的[4]帕洛阿尔托研究中心(PARC)。直到1988年,MVC的概念才被引入《技术期刊》(Journal of Technology, JoT)。起初,它被设计成使用图形用户界面支持所有类型的应用程序,最终web开发人员采用了这种模式。

它的第一次流行是在1996年,当时用Objective-C编写的WebObjects首次被引入。很快,MVC模式也受到Java开发人员的欢迎。Java框架,如Spring,继续了Java和MVC之间的紧密联系。Django(2005年7月,适用于Python)和Rails(2005年12月,适用于Ruby)这两个框架都非常强调快速部署,它们的引入增加了MVC在其长期流行的传统企业环境之外的受欢迎程度。在当今时代,MVC不仅仅局限于服务器端编程(在服务器上运行的处理web页面内容生成的程序)。客户端(在客户端机器(浏览器)上运行的程序,处理用户界面/显示和任何其他处理,可以发生在客户端机器上,如读取/写入cookie)框架,如AngularJS,ReactJS也成功地出现在MVC模式。

III. 相关工作

A. Spring

Spring是一个开源的Java MVC框架。它最初由Rod Johnson撰写,2003年由Apache基金会首次发布。它在XML中有很好的配置,有一个简单的问题,我们今天已经超越了XML。诚然,我们仍然看到XML在使用,但它是一种过时的技术,有一个主要缺陷。Java作为一种语言的优点之一是编译时的安全性。在编译Java代码时,100%肯定一切都已构建、插入并准备好工作。在Spring中,在初始化bean时等待30-60秒,然后就会摔倒。现在,将其乘上一些集成测试,其中需要上下旋转容器。在这一点上,通常的回答是“您现在可以通过注释完成所有工作!”没有更多的xml !”。尽管Spring framework确实添加了注释作为特性。XML对于在Spring中完成大部分工作仍然是必不可少的。

另一个主要的障碍是3600多个类的框架的巨大尺寸。同样,有些人认为我们可以将Spring文件切成更小的文件。有经验的程序员会花很多时间在jar中爬行,试图找到正确的spring文件组合/顺序/版本,从而使某些东西实际以这种方式运行。jar中的Spring文件是一个非常糟糕的主意。Spring框架如此庞大和复杂,以至于它有自己的框架,Spring引导使事情变得更简单。它就像一个框架的开端,讲述的是Leonardo Di Caprio在最终放弃之前,通过越来越深入地研究XML和注释层来寻找他丢失已久的java代码的故事。

B. Struts

Struts是另一个流行的java框架,由Craig McClanahan开发,Apache基金会于2001年6月首次发布。Struts的最新稳定版本是Struts 2.3.16.1,它于2014年3月发布。它没有一个问题,但是有很多关键的bug。其中一个漏洞在数据泄漏中被利用。除此之外,它已经过时了,没有得到适当的维护,并且支持旧的技术。缺乏文档和使用上的刚性使得程序员很难使用它。与普通Java web应用程序相比,该框架很难理解,因为它涉及各种复杂的流程。

IV. 设计的项目

上述框架的广泛性和复杂性使得它们不太可能成为组织构建原型和小型项目的候选者。记住这一点,我们提出了一个新的框架——工作标题弹——是轻量级的,易于学习和使用。轻量级意味着与Spring和Struts 2不同,Bounce包含的类数量要少得多。它的目的是减少开发时间,并且易于学习,因为创建与路径名相同的类将直接将控件引向特定的类。例如:URL www.helloworld.com/randompathwhere中的path是/randompath。框架搜索一个名为Randompath的类或任意字符序列作为Randompath,它不区分大小写(这里Randompath将用于所有路径名)。这是在反射类[代码片段1]的帮助下完成的。

代码片段1

ServletName类包含三个方法,即getServletName、checkPackage、checkMapping和mapToFields。在上面代码的第一行中,首先实例化ServletName类的对象,然后使用getSevletName方法从url获取路径名。参见下面的代码片段[代码片段2]。

代码片段2

然后执行搜索以检查是否有与路径名相同的servlet。第5行代码用于获取MappingHandler的子类对象的引用。MappingHandler是一个接口[代码片段3],每个类都需要实现它。然后获取所有参数的名称。声明的类必须具有同名的字符串变量。如果存在,则使用setter方法执行映射。

代码片段3

MappingHandler是RandomPath类必须实现的接口。它返回一个RandomPath类的实例。该控件首先进入一个名为TheHub的类。这个类负责处理所有的请求。集线器从javax扩展HttpServlet类。servlet包。MappingHandler接口有两个方法,getMethod()和postMethod()。当客户端使用GET方法向服务器发送请求时,集线器调用RandomPath类的getMethod()方法,反之亦然。getMethod()将返回requestdisacher类的一个实例的引用[图5]。

V. 未来的范围

世界技术的变化速度比以往任何时候都快。一个功能最丰富和完整的框架的缺点是它的复杂性和庞大的规模。使学习变得困难,并划分为必需的模块。在这个项目中,我们试图以这样一种方式构建一个框架:它是通用的、简单的、高效的。作为项目扩展的一部分,可以为从用户获取元数据的唯一目的添加注释。例如,开发人员决定不使用pathname作为类名,在注释的帮助下可以处理它。进一步的改进迭代可能会看到该框架与Hibernate框架集成到模型部分,与JSTL集成到视图部分。

VI. 结论

模型、视图和控制器(MVC)模式已经成为web开发中一种流行且普遍接受的模式。大多数流行的编程语言至少有一个构建在MVC模式上的主要框架,包括Java。Java有许多MVC框架,但其中有两个非常流行。Spring和Struts 2(由Apache开发)已经存在一段时间了,并且具有许多独特的特性。但是称它们为完美的框架是不准确的。过时(Struts 2)、缺乏对最新技术的支持以及过于复杂、学习曲线陡峭(Spring),使得它们不适用于中小型web开发项目。其想法是开发一个支持与最新技术集成的新框架,同时保持其简单而有效。

翻译文献:《Web-Based Network Management System implemented using Hibernate, JBoss and Spring Framework》

翻译内容:

基于web的网络管理系统采用Hibernate、JBoss和Spring框架实现

Himani Pandey,HimaniRastogi ,Charu Gupta,Anuja

摘要:

由于大规模网络的复杂性,很明显需要确定一种有效的网络监控方法,以保证网络中设备的性能不受影响。本文介绍了一种基于web的网络管理系统,其中J2EE平台是实现的基础。提出的体系结构包括各种Web技术的技术环境[1],如Java[2]、JSP(Java服务器页面)、CSS(层叠样式表)、HTML(超文本标记语言)、Web服务、Ajax、Spring 4。x,Hibernate3。x, JBoss8 (IDE和应用服务器)和Oracle 11g。它集成了前端服务器、后端web服务和数据库服务器。系统充分发挥了上述技术的优势,提供了更加方便、简单、安全的网络管理系统。

关键词- NMS; FCAPS; Hibernate; Spring-MVC

I.介绍

随着网络规模的扩大和复杂性的增加,传统的基于桌面的NMS或者我们可以说集中式的

全文共9664字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[1326]

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

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