仓酷云
标题:
JAVA网站制作之关于Struts和Spring两种MVC框架的对照
[打印本页]
作者:
若相依
时间:
2015-1-18 11:17
标题:
JAVA网站制作之关于Struts和Spring两种MVC框架的对照
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,对照<Pstyle="TEXT-INDENT:2em">基于Web的MVCframework在J2EE的天下内已经是绝后昌盛。TTS网站上几近每隔一两个礼拜就会有新的MVC框架公布。今朝对照好的MVC,老牌的有Struts、Webwork。新兴的MVC框架有SpringMVC、Tapestry、JSF等。这些年夜多是出名团队的作品,别的另有一些边沿团队的作品,也相称杰出,如Dinamica、VRaptor等。这些框架都供应了较好的条理分开才能。在完成优秀的MVC分开的基本上,经由过程供应一些现成的帮助类库,同时也增进了临盆效力的进步。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">怎样选择一个好的框架使用在你的项目中,将会对你的项目标效力和可重用是相当主要的。本文将对今朝最盛行、最经常使用的两种framework举行先容。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">1、Struts<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Struts是Apache软件基金下Jakarta项目标一部分。Struts框架的次要架构计划和开辟者是CraigR.McClanahan。Struts是今朝JavaWebMVC框架中不争的王者。经由长达五年的开展,Struts已渐渐发展为一个不乱、成熟的框架,而且占据了MVC框架中最年夜的市场份额。可是Struts某些手艺特征上已掉队于新兴的MVC框架。面临SpringMVC、Webwork2这些计划更严密,扩大性更强的框架,Struts遭到了亘古未有的应战。但站在产物开辟的角度而言,Struts仍旧是最稳妥的选择。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Struts有一组互相合作的类(组件)、Serlvet和jsptaglib构成。基于struts构架的web使用程序基础上切合JSPModel2的计划尺度,能够说是MVC计划形式的一种变更范例。依据下面对framework的形貌,我们很简单了解为何说Struts是一个webframwork,而不单单是一些标志库的组合。但Struts也包括了丰厚的标志库和自力于该框架事情的有用程序类。Struts有其本人的把持器(Controller),同时整合了其他的一些手艺往完成模子层(Model)和视图层(View)。在模子层,Struts能够很简单的与数据会见手艺相分离,包含EJB,JDBC和ObjectRelationBridge。在视图层,Struts可以与JSP,VelocityTemplates,XSL等等这些暗示层组件想分离。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Struts的系统布局<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">strutsframework是MVC形式的表现,上面我们就从分离从模子、视图、把持来看看struts的系统布局(Architecture)。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">从视图角度(View)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">次要由JSP创建,struts本身包括了一组可扩大的自界说标签库(TagLib),能够简化创立用户界面的历程。今朝包含:BeanTags,HTMLTags,LogicTags,NestedTags,TemplateTags这几个Taglib。有关它们的具体材料请参考struts用户手册。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">从模子角度(Model)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">模子次要是暗示一个体系的形态(偶然候,改动体系形态的营业逻辑操纵也分别到模子中)。在Struts中,体系的形态次要有ActiomFormBean表现,一样平常情形下,这些形态长短耐久性的。假如必要将这些形态转化为耐久性数据存储,Struts自己也供应了Utitle包,能够便利的与数据库操纵。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">从把持器角度(Controller)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">在Strutsframework中,Controller次要是ActionServlet,可是关于营业逻辑的操纵则次要由Action、ActionMapping、ActionForward这几个组件和谐完成(大概这几个组件,应当分别到模子中的营业逻辑一块)。个中,Action饰演了真实的营业逻辑的完成者,而ActionMapping和ActionForward则指定了分歧营业逻辑或流程的运转偏向。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">关于Struts怎样把持、处置客户哀求,让我们经由过程对struts的四个中心组件先容来详细申明。这几个组件就是:ActionServlet。ActionClasses,ActionMapping(此处包含ActionForward),ActionFromBean。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2、Spring<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Spring实践上是《ExpertOne-on-OneJ2EEDesignandDevelopment》一书中所论述的计划头脑的详细完成。在One-on-One一书中,RodJohnson倡议J2EE有用主义的计划头脑,并随书供应了一个开端的开辟框架完成(interface21开辟包)。而Spring恰是这一头脑的更周全和详细的表现。RodJohnson在interface21开辟包的基本之上,举行了进一步的改革和扩大,使其开展为一个加倍开放、明晰、周全、高效的开辟框架。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Spring是一个开源框架,由RodJohnson创立而且在他的著作《J2EE计划开辟编程指南》里举行了形貌。它是为懂得决企业使用开辟的庞大性而创立的。Spring使利用基础的JavaBeans来完成之前只大概由EJB完成的事变变得大概了。但是,Spring的用处不但限于服务器真个开辟。从复杂性、可测试性和松耦合的角度而言,任何Java使用都能够从Spring中受害。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">复杂来讲,Spring是一个轻量的把持反转和面向切面的容器框架。固然,这个形貌有点过于复杂。但它切实其实归纳综合出了Spring是做甚么的。为了更好地舆解Spring,让我们剖析一下这个形貌:<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">1、轻量<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">从巨细与开支两方面而言Spring都是轻量的。完全的Spring框架能够在一个巨细只要1MB多的JAR文件里公布。而且Spring所需的处置开支也是微乎其微的。别的,Spring长短侵进式的:典范地,Spring使用中的对象不依附于轻量,从巨细与开支两方面而言Spring都是轻量的。完全的Spring框架能够在一个巨细只要1MB多的JAR文件里公布。而且Spring所需的处置开支也是微乎其微的。别的,Spring长短侵进式的:典范地,Spring使用中的对象不依附于Spring的特定类。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2、把持反转<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Spring经由过程一种称作把持反转(IoC)的手艺增进了松耦合。当使用了IoC,对象主动地传送它们的依附而不是本人创立大概查找依附对象。你能够以为IoC与JNDI相反??不是对象沉着器中查找依附,而是容器在对象初始化时不等被哀求就将依附传送给它。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3、面向切面<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Spring包括劈面向切面编程的丰厚撑持,同意经由过程分别使用的营业逻辑与体系服务(比方审计与事物办理)举行内聚性的开辟。使用对象只做它们应当做的,完成营业逻辑,仅此罢了。它们其实不卖力(乃至是认识)别的的体系存眷点,比方日记或事物撑持。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">4、容器<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">Spring包括和办理使用对象的设置和性命周期,在这个意义上它是一种容器。你能够设置你的每一个bean怎样被创立?基于一个设置本相为你的bean创立一个独自的实例大概每次必要时都天生一个新的实例和它们是怎样互相联系关系的。但是,Spring不该该被混淆于传统的分量的EJB容器,它们常常是复杂与粗笨的,难以利用。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">框架:Spring是由复杂的组件设置和组合庞大的使用成为大概。在Spring中,使用对象被声明式地组合,典范地是在一个XML文件里。Spring也供应了良多基本功效(事件办理、耐久性框架集成等等),将使用逻辑的开辟留给了你。<Pstyle="TEXT-INDENT:2em">一切Spring的这些特性使你可以编写更洁净、更可办理、而且更容易于测试的代码。它们也为Spring中的各类子框架供应了基本。
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,
作者:
飘灵儿
时间:
2015-1-20 19:27
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者:
愤怒的大鸟
时间:
2015-1-24 16:18
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
飘飘悠悠
时间:
2015-1-25 22:23
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
山那边是海
时间:
2015-1-31 06:58
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
莫相离
时间:
2015-2-6 18:48
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者:
若相依
时间:
2015-2-18 03:46
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
冷月葬花魂
时间:
2015-2-28 16:13
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者:
第二个灵魂
时间:
2015-3-1 21:43
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者:
金色的骷髅
时间:
2015-3-6 21:01
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者:
透明
时间:
2015-3-12 15:23
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
活着的死人
时间:
2015-3-19 23:26
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2