计算机专业外文翻译 9Word格式文档下载.docx
- 文档编号:17635189
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:14
- 大小:30.51KB
计算机专业外文翻译 9Word格式文档下载.docx
《计算机专业外文翻译 9Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机专业外文翻译 9Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
在融入StrutsAction2和Shale成Struts2时,Shale的开发者觉得如果在原有的基础上发展那样会更好。
于StrutsAction2很快就被重新命名为Struts2。
今天,ApacheStruts有两个版本的框架,但它们都是基于Action相应的框架。
Struts2的设计思想和核心来自于WebWork。
Struts2从最初版本,它具有插件框架,新的API,更好地支持Ajax标签。
Struts2在不断发展中。
4.2Struts2特点
4.2.1MVC架构
Struts2继承Struts1优良特点,也是用于开发web应用程序的一个开放源码的J2EE框架,使用模型、视图、控制器的设计模式。
MVC的主要是分离与应用数据的业务逻辑与表现的数据。
这也是是使用MVC设计模式的原因。
可重用性:
当遇到一类问题的出现,不需要再创建一个新的解决方案,只是要遵循的模式。
易于理解:
采用MVC设计模式,让应用程序变得更加可读和理解的。
4.2.1.1模型
总所周知,模型层负责表现所有的业务数据。
模型关心的是应用的请求处理,模型是专门负责维护数据的,它负责业务数据按照业务规则进行执行对数据的访问和更新操作,模型并不关心持久化数据操作和数据是如何在用户端展现的。
4.2.1.2视图
视图表达用户所提交的请求。
视图依赖于模型。
视图调用模型提供的取值方法查询业务状态,但是它本身并不依赖于应用的程序的逻辑。
视图层时刻保持与业务逻辑相对应的一致性。
换句话说,我们可以说它的任务是一旦模式层变化视图也跟着变化调整,而达到与模式层保持一致性。
4.2.1.3控制器
用户每发送一个请求总是要经过控制器。
控制器是负责监听和接收用户请求,并且通过它传递给模型,模型做适当的处理。
数据处理完成后,控制器负责选择合适的视图展现给用户。
在GUIs应用程序里,视图层和控制器通常是紧密协调工作的。
4.2.2Struts2是如何完美运用MVC模式呢
TheStruts2的控制器
每当用户发来请求时,请求都要被FilterDispatcher处理。
当FilterDispatcher接收该请求,它会根据配置文件截获URL,然后将请求处理给Action类。
Action类是另外一个控制器,Action负责与模式层会话。
TheStruts2的视图
视图负责展现信息给用户与接受用户的输入。
我们大多使用JSP作为视图展现。
Struts提供给我们丰富的视图,如自定义用户标签、java脚本等。
TheStruts2的模型层
模型层表示Struts2应用程序业务逻辑。
模型层提供访问数据库的接口或者一些对外接口。
模型层通常是一些java类,里面没有定义针对具体的模型,而是抽象的,这样提搞了代码的重用性。
4.2.3Struts2带来什么
Struts2集Struts和WebWork2两大框架于一体,通过使用WebWork2及集成一些插件框架,一些新的API,AJAX标记等,因此Struts2是动态、易扩展框架,对于复杂大型工程,Struts2能出色的完成从开发、部署到维护。
Struts2是面向接口编程的,易于扩展。
配置基本要求ServletAPI2.4,JSPAPI2.0,Java5以上。
Struts2框架特点:
Architecture:
首先,FilterDispatcher拦截Web浏览器发来的请求和决定调用Action类;
其次,在Action类execute()方法执行前后如存储数据和查询数据,大量的拦截器将被调用。
最后,处理结果将以HTML、PDF、图片等形式返回输出到浏览器。
Tags:
Struts2引用标记,减少了web程序代码量。
Struts2中的标记既包括输出数据,也有样式表。
这些标签也具有验证和序列化功能。
使用标签的web程序代码,提高程序的可读性和维护性。
MVC:
Struts2中MVC起到协调者作用。
Struts2有自己的库和标记标签。
Configuration:
Struts2提供了一种以XML格式的部署描述符来初始化资源。
初始化工作仅仅通过扫描所有Java包或者使用一个应用程序配置文件来控制整个配置。
配置文件的重新加载可以不用重启web容器。
Struts2框架其他特点:
1.所有类都是基于接口及核心接口编程,是相对独立于HTTP。
2.任何类可作为一个Action类,可以JavaBean输入属性,直接关联到Action类方法。
3.Struts2易于与Spring框架集成。
4.AJAX使得应用程序更加灵活。
4.2.4深入Struts2框架
集Struts和Webwork两大框架一体的Struts2,开发出来的Web应用程序是可扩展的、优秀的。
本节我们将讨论Struts2框架。
首先,看看Struts2工作流程:
1.用户请求:
用户发送请求给服务器,请求资源。
2.FilterDispatcher选择相应的Action:
FilterDispatcher监听请求,选择相应的Action。
3.拦截器拦截:
拦截器是针对一些请求自动起作用的,是为实现某些功能服务的,如工厂、验证、文件上传等。
4.Action的执行:
Action的执行,如存储、查询。
5.输出视图:
结果输出。
6.返回结果:
通过拦截器返回请求命令。
7.显示结果给用户:
servlet控制器发送输出结果给用户浏器。
正如我们所看到的图解,一个请求将从用户被发送到服务器,然后这请求通过Dispatcher,在ConfigurationManager和配置文件帮助下,决定适当的Action。
然后,被广泛应用的拦截器拦截,如工厂初始化,进行验证。
被execute方法执行前后,拦截器启动工作,如储存或从数据库中检索数据。
输出结果,通过拦截器的请求返回命令。
这请求允许我们返回去执行清理或额外的处理。
最后,在回到servlet控制容器,输出到用户的浏览器。
过滤链:
1.ActionContextCleanUpfilter:
ActionContextCleanUp过滤器是可选的,是在使用如SiteMesh等的时候才会使用的。
2.FilterDispatcher:
回调ActionMapper来决定是否调用一个Action。
若此Action是必需的调用,FilterDispatcher委托ActionProxy。
3.ActionProxy:
ActionProxy从配置文件接管管理权,然后ActionProxy创造了一个ActionInvocation。
ActionInvocation过程是调用拦截器,然后选择调用Action。
ActionInvocation选择相应的结果,然后涉及JSP或模板的结果被执行。
现在大家可能会困惑,我们要怎样配置过滤器呢?
答案就是:
在web.xml文件里配置。
接下来介绍一个简单的过滤器配置:
<
filter>
filter-name>
struts2<
/filter-name>
filter-class>
org.apache.struts2.dispatcher.FilterDispatcher<
/filter-class>
/filter>
filter-mapping>
url-pattern>
/*<
/url-pattern>
/filter-mapping>
Struts2的优势
最新版本Struts2.0融合StrutsAction和Webwork。
根据在Struts2发布公告,一些关键的概念和特点是:
1.SimplifiedDesign:
编程抽象类代替了接口是struts1框架设计问题之一已经在struts2的框架解决了。
大部分的struts2类都是基于接口和它的大部分核心接口是与HTTP独立的。
类是struts2Action框架独立和POJOs看起来简单。
框架部件都尽量保持宽松耦合。
2.SimplifiedActions:
Action是简单的POJOs。
任何带execute()方法的java类都能作为Action类。
即使我们不需要实现接口。
控制反转也会注入的Action类。
这使Action中立到基本框架。
3.NomoreActionForms:
struts2框架里没有ActionForms。
简单的JavaBean直接设置属性。
没有必要使用所有字符串属性。
4.Simplifiedtestability:
Struts2Action是与HTTP非关联的松耦合框架,这就使得测试struts框架简单容易,无需引入虚拟对象。
5.IntelligentDefaults:
多数配置的元素有一个默认值,根据需要,它们都可以被设置。
甚至有基于xml的默认配置文件,即可根据需要自动默认设置。
6.Improvedresults:
不像ActionForwards,Struts2提供灵活性多种类型结果输出。
7.BetterTagfeatures:
struts2标签增加了sheet-driven功能,这样我们就可以用较少的代码页创造一致风格。
Struts2标签是具有更强的功能和结果导向。
struts2标签标记能够改变样式表。
自定义标签标记可调的编辑FreeMarker模版定制标签。
JSP和FreeMarker标签也是两个完全支持。
8.Annotationsintroduced:
在struts2应用程序里,可以使用Java5版本以上支持的注释来替代XML和Java属性配置。
注释最低限度地使用xml。
9.QuickStart:
许多变化,可以直接该没有必要重新启动Web容器。
10.customizingcontroller:
Struts1定制请求处理器对应每个模块,Struts2定制请求处理每Action,如果有必要。
11.EasySpringintegration:
Struts2Action是Spring-aware的,只需要添加的SpringBean!
12.Easyplugins:
Struts2只要添加相应的JAR能扩展。
不做人工配置。
Struts1.xVSStruts2.x
1.ServletDependency:
Struts1的Action类依赖于servletAPI以HttpServletRequest,HttpServletResponse作参数传给execute方法当Action被调用时。
Struts2的Action不和容器有关。
Servlet上下文被表现简单的Maps,允许Action被独立的测试。
Struts2的Action可以访问最初的请求和相应,如果需要的话。
然而,其他的架构元素少或者排除直接访问HttpServletRequest或者HttpServletResponse的需要
2.Actionclasses:
Struts1要求Action类要扩展自一个抽象基类。
Struts1的一个共有的问题是面向抽象类编程而不是面向接口编程。
Struts2的Action类实现了一个Action接口,连同其他接口一起实现可选择和自定义的服务。
Struts2提供一个名叫ActionSupport的基类实现一般使用的接口。
虽然,Action接口不是必须的。
任何使用execute方法的POJO对象可以被当作Struts2的Action对象使用。
3.Validation:
Struts1支持手动验证凭借ActionForm的validate方法,或者通过扩展的公用验证器。
类可以有不同的验证上下文未相同的类,但是不能不能包括验证子对象。
Struts2支持手动验证凭借validate方法和XWork验证框架。
Xwork验证框架支持一连串的验证子属性使用的验证了属性类的类型和严正上下文而定义。
4.ThreadingModel:
Struts1Action类是单例类,因只有一个示例控制所有的请求。
单例类策略造成了一定的限制且给开发带来了额外的烦恼。
Action资源必须是程安全或者同步的。
Struts2Action对象每一个请求都实例化对象,所以没有程安全的问题。
(实践中,servlet容器生许多丢的对象对于每一个请求,多于一个的对象并不影响垃圾收集)
5.Testability:
测试Struts1的主要障碍是execute方法暴露了ServletAPI。
第三方的扩展,Struts测试用例,提供Struts1的集合对象。
Struts2的Action可以通过实例化Action测试,设置属性,然后调用方法。
依赖注入的支持也是测试变得更简单。
6.HarvestingInput:
Struts1使用ActionForm对象捕获输入。
像Action一样,所有的ActionForm必须扩展基类。
其他的JavaBean不能作ActionForm使用,开发者经常创建多余的类捕获输入。
DynaBeans可以被用来做替代ActionForm的类创建。
但是开发者可以重新描述已经存在的JavaBean。
Struts2Action属性作输入属性,排除第二个输入对象的需要。
输入属性可能有丰富的对象类型这些类型有他们自己的属性。
Action的属性可以通过标签库访问。
Struts2也支ActionForm形式。
丰富的对象类型,包含业务或者域对象,可以被当作输入或者输出对象使用。
馍型驱动特性简化标签对POJO输入对象的引用。
7.ExpressionLanguage:
Struts1整和JSTL,所以它使用JSTL的表达式语言。
表达式语言有基本的图形对象移动,但是相对很弱的集合和被索引的属性支持。
Struts2使用JSTL,但是框架也支持更大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)。
8.Bindingvaluesintoviews:
Struts1使用标准JSP机制来绑定对象到页面上下文。
Struts2使用“ValueStack”技术了标签库可以不用链接你的视图到对象的表现类型访问值。
ValueStack策略允许重用视图。
9.TypeConversion:
Struts1的ActionForm属性经常都是String的。
Struts1使用Commons-Beanutils类型转换。
转换每一个类,不是每一个实例配置。
Struts2使用OGNL类型转换。
框架包含转换器基本的和共同的对象类型和原始类型。
10.ControlOfActionExecution:
Struts1支持独立的请求处理器对于每一个模型,但是所有在模型中的Action必须共享同一个生命周期。
Struts2支持在每一个Action基础上凭借拦截栈创建不同的生命周期。
自定义栈可以被创建且使用不同的所需的Action。
译文原件复印件
“ApacheStruts2isanelegant,extensibleframeworkforcreatingenterprise-readyJavawebapplications.Theframeworkisdesignedtostreamlinethefulldevelopmentcycle,frombuilding,todeploying,tomaintainingapplicationsovertime”-TheApacheSoftwareFoundation.
4.1Introduction
ApacheStrutsisanopen-sourceframeworkthatisusedfordevelopingJavawebapplication.OriginallydevelopedbytheprogrammerandauthorCraigR.McClanahan,thiswaslatertakenoverbytheApacheSoftwareFoundationin2002.StrutshaveprovidedanexcellentframeworkfordevelopingapplicationeasilybyorganizingJSPandServletbasedonHTMLformatsandJavacode.Strut1withallstandardJavatechnologiesandpackagesofJakartaassiststocreateanextensibledevelopmentenvironment.However,withthegrowingdemandofwebapplication,Strut1doesnotstandfirmandneedstobechangedwithdemand.ThisleadstothecreationofStrut2,whichismoredeveloperfriendlywithfeatureslikeAjax,rapiddevelopmentandextensibility.
4.1.1HistoryofStruts2
Sincearrivingonthescenein2000,ApacheStrutshasenjoyedaverysuccessfulrun,bymostanystandard,helpingtobuildmany,ifnotmost,oftheJava-basedwebapplicationsdeployedtoday.ItshistorytellsofhowStrutsprovidedasolidframeworktoorganizethemessofJSPandServletstomakedevelopingapplications,whichusedmostlyserver-generatedHTMLwithatouchJavaScriptforclient-sidevalidation,easiertodevelopandmaintain.Astimemovedforward,andcustomerdemandsofwebapplicationsgrewandgrew,Struts1prettymuchstayedthesame,leavingmoreandmoreplumbingtothewebdeveloper.AtJavaOne2005,severaloftheStrutsdeveloperssatdownwithafewStrutsuserstodiscussthefutureofStrutsandcameupwiththeStrutsTiproposal,whichdescribedaframeworkthatbroughttogetheralotofgoodthingsthatweredevelopinginthewebframeworkcommunity.TheproblemisthattheStruts1codebasedidn’tlenditselftodrasticimprovements,anditsfeaturesetwasratherlimited,particularlylackinginfeaturessuchasAjax,rapiddevelopment,andextensibility.Atthesametime,theyalsometdevelopersfromotherframeworkssuchastheSpringWebFlowprojectandstarteddiscussingaroundanideaofthepossibility
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机专业外文翻译 计算机专业 外文 翻译