您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > Web框架主流上分为两类
Web框架主流上分为两类:MVC框架和事件响应机制框架MVC框架有Struts,Webwork,SpringMVC,事件框架有JSF,Tapestry,Echo等。JavaWeb框架种类繁多,花样迭出,主流一点的就有Struts,Webwork,SpringMVC,JSF,Tapestry,至于非主流的就更加不计其数了。还有很多基于这些框架的衍生框架,例如基于Struts的beehive,基于JSF的JBossSeam,基于JSF的MyFaces,Shale等等。对于开发人员来说,过多的选择是一种沉重的负担,不但需要花更多的时间去学习,也需要更多的时间去维护基于不同框架的代码。由于面临着dotnet统一的web框架webforms以及异军突起的rails的强势挑战,Java业界也感受到竞争的丝丝寒意,这不,众多JavaWeb框架的核心开发人员终于可以坐到一起,商量着Web框架的统一和互操作的问题了。由众多JavaWeb框架的开发人员组成的一个团队……JavaWebAlignmentGroup,这其中包括了Struts,Webwork,JSF,Beehive,JBossSeam,SpringMVC等众多框架核心开发人员组成,目标则是加强交流和合作,促进各个Web框架之间的协作,给Java开发人员提供尽量方便的解决方案。他们讨论的内容在YahooGroup:加入这个mailist需要批准。目前这个Group的讨论已经得到了一个显著的进步:struts,webwork和beehive的合并!我们知道Web框架主流上分为两类:MVC框架和事件响应机制框架。MVC框架有Struts,Webwork,SpringMVC,以及一些基于这些框架的框架,如SpringWebflow,Beehive等等;事件框架有JSF,Tapestry,Echo等。除此之外,还有一些连接两者的框架,如StrutsShale等等。经过一段时间的讨论,Struts,Webwork和beehive三方宣布合并,共同发展下一代MVC模式的MVC框架……StrutsTi。它将主要以Webwork为核心,集成Beehive的annotataion和pageflow功能,推向Struts用户群体,并且加强和JSF的集成能力。这次合并的前景是值得期待的,在MVC领域,主流的选择将在StrutsTi和SpringMVC之间。不过从目前的情况来看,StrutsTi不会进一步和SpringMVC进行合并。SpringMVC的开发人员希望保护现有的SpringMVC合作伙伴和客户,以及在Springwebflow上面的巨大投入。让我们期待该组织的更进一步的成果吧JavaWeb应用框架的下一个王者是谁?经过数年的“框架大战”,Java界的各种框架找到了自己应有的位置。Spring+Hibernate+Struts已成为Java开发的主流体系。在这个体系中,Spring+Hibernate的地位应该说短期内是难以撼动了。除了新兴的JbossSeam作为挑战者之外,几乎难有劲敌。有趣的是当初Spring、Hibernate作为挑战者,将官方的EJB成功挑落马下;这次反倒是官方的EBJ3成了挑战者,不知结局如何。JavaB/S编程中历来战火最激烈的其实还在Web层,框架的数量最多,争议最大。一切由Struts而起,而Struts最终也坐稳了第一个时代的王座。在技术层面,Struts1.x已经被无数人抱怨过、批评过,但终于还是稳坐王位,这充分说明了习惯的力量。“稳定压倒一切”,这句话在IT技术领域仍旧适用。其实IT应用技术,什么新鲜玩意并不难学。难的是标准化和规范化。每个程序员都有自己的思路和习惯,写出来的代码自然是五花八门。Java何以成为编程界的老大,很重要的一点在于Java的规范化。这种规范化很高的语言适用于多人合作的大型项目,便于沟通和理解,也就便于集成和维护。Java世界为什么会框架横飞,说到底还是规范化的需要。纯JSP和Struts写Web谁快,摆明了是JSP。那撑饱了用Struts?原因在于100个人写出来的JSP,有100种写法;而100个人写出来的Struts,基本相似。Struts之成功,正缘于其在JavaWeb层的规范化方面所做出的贡献。然而长江后浪推前浪,Struts1.x的技术缺陷毕竟是隐患。Sun力推JSF,打算一雪Web层框架缺失之耻。可惜JSF既要沿用Swing的技术路线,又要学ASP.NET,还要照顾产商的IDE,结果搞了个四不象,弄得里外不是人。当然Sun的技术实力毕竟是超强的,只要别重蹈EJB的覆辙,拿出点专断的精神(像这两年的NetBeans),做出像Swing那样水准的东西,JSF当大有作为。JSF现在比较有优势的是对Ajax的集成,这一点走在了其他框架的前面。而Struts就更没有志气了,把WebWork换了个标签,凑出个Struts2,Bug多多。说实在话,根本不如原版的WebWork。如果不是靠了原先的fans捧场,根本就没得混。不过Struts原本就不是以技术取胜的,靠的是抢占先机带来的习惯优势。如果原先的fans们在这两年内都能转到Struts2,那么Struts二世仍将雄霸天下。综上所述,未来两年,JSF与Struts将展开JavaWeb框架的最终战争。以笔者愚见,结局有二:一是不论Struts还是JSF获胜,JavaWeb层都将结束混战的局面,这对JavaWeb开发的标准化是非常有利的,并有助于巩固Java在B/S界的地位;二是Struts1.x、Struts2、JSF三分天下,必然从整体上削弱Java在B/S界的竞争力,并将进一步被RoR、ASP.NET、PHP所蚕食。2.JavaWeb开发技术的发展在JSP盛行的头几年,业界对JSP的前景寄予厚望,这点很大方面是挟Java之威,并在Web应用开发领域体现出来一股霸气。而实际上,JSP在项目中大规模的成功应用,也接受住了考验。应该说,在JSP、ASP以及PHP的“三国争霸”较量中,JSP以强大原生语言以及丰富类库支持的优势,首先打败的是ASP,而非PHP,因为当时PHP走的是“草根”发展模式,避免了与JSP正面交峰。JSP在大规模应用的同时,也遇到了些问题或局限,如:逻辑和页面代码容易混合在一起、调试不方便,工具支持困难等等。这些问题如何解决?网络的发展,是当前软件领域快速发展的一个动力!“三十年河东、三十年河西”,在Web技术发展历程中,三年都很长了。随着ASP.NET的推出,其技术上的实现是先进的,并有.NET框架的强大支持,控件+事件的方式也让人觉得耳目一新。同时,在MVC模式被业界普遍接受的形势下,JSP方面针对自身缺陷,也有所动作,如JSTL、EL等技术的引入,此外,JavaWeb开发技术方面的各种框架也在新形势下借助开源的力量发力,快速前进,并针对JSP所遇问题提供各种切实可行的解决方案,从而得到广泛应用。不管是对.NET阵营、还是对Java阵营而言,所有的这些发展,都提高了Web开发工作的效率和可复用性。回首近几年来Web开发技术的发展历程,可以发现各种Web开发技术之间即是相互竞争,促进和借鉴的关系,适者生存、劣者淘汰。一个典型的例子就是曾经让很多为之倾倒的Struts,在为JavaWeb技术应用作出巨大贡献之后,为了进一步更好的发展,正在和WebWork走向相互的融合之路。此外,在这竞争过程中,我们不得不提同样来自于开源社区的黑马RubyonRails,在2006年,忽如一夜春风来,各种快速开发框架如千树万树梨花开。不用问,这都是被rails刺激。Groovy,Django,Able,Seam,Rife,Stripes,数不胜数。不过rails能够领先的秘诀其实是其设计思想的领先和敏捷的Web开发,一时间,到处都是新兵RubyonRails挑战Web开发技术的内容,平心而论,在企业级应用方面,RubyonRails还有很长的路要走,在时间面前,谁又能保证永远独领风骚呢?毕竟,在开源的世界里永远不缺少奇迹!3.开源的世界如此美好JavaWeb开发技术与Asp.net有显著的不同之处,那就是开源,这相对微软技术的专有性而言,是个得天独厚的优势,因此,JavaWeb框架有着强大的生命力,其生命力就来源于开源社区源源不断地贡献。应该深信,开源的力量如此强大,只要开源模式成熟到一定程度,开源应用必将遍布各个领域,在JavaWeb开发领域里,事实也正是如此!王者般的Struts、轻快简洁的WebWork、功能强大而较难掌握的Tapestry、易于集成的SpringMVC,还有JavaEE标准的JSF,各式各样的JavaWeb框架凝聚了开源社区的努力和心血,虽说都是“剑”,但此“剑”非彼“剑”,面对这么多令人眼花缭乱的“利剑”,你又如何选择?如此多优秀的技术摆在面前,我更愿意理解成机会!也就是给我们更多的选择机会!选择一种好的JavaWeb实现技术,对构架设计非常重要,我的选择原则是:和业务的匹配程度:选择复杂而功能强大的、还是选择简单而快速的?要根把业务的需求,进行适当选择。熟悉程度。使用熟悉的技术,往往能把这种技术的潜力发挥到极致,即使是再新的技术,如果不熟悉,还是枉然。技术成熟度:选择一种有口碑并经过实践验证的技术,系统的稳定型、可扩展性以及和其他技术的协作性,都很重要。技术先进性:技术先进性是要考虑的,但技术先进性也是相对的,“老”技术也有其存在道理,甚至连Cobol都还没“绝迹”,所以只要在可接受范围,就不必太过计较是“老技术”还是“新技术”。兴趣:这个因素应该服从上面所提到的其他因素,比如,我个人比较喜欢WebWork框架,我称之为一把好用的“妖刀”,但在实际中,我不会轻易就选择它,在大多数开发人员熟悉Struts的情况下,而Struts也适合,那就应该选择Struts。但你完全可以把你感兴趣的技术作为个人爱好来研究、学习。把握以上原则,应该可以作出选择,一个技术是否会败落,取决的因素很多,但从另一方面来看,一种技术的生命力往往是很强的,如C,在金融、证券、电信等行业的关键业务处理中,占据了重要位置;再如Struts1.X,虽然它的一些理念和当今新的一些框架相比,略显落后,但其已经得到相当规模的应用,就是在Struts2面前,它在应用中的地位也不容忽略。开源模式加速了技术发展,技术发展让我们不断进步,就JavaWeb开发技术来说,做好选择是必然,深入掌握好一种技术,再尝试其他类似技术,大多情况下,可以做到触类旁通。可以说,随着SUN一系列Java开源策略的出台,开源社区在包括JavaWeb技术在内的Java诸多技术领域里的贡献将变得越来越多,影响力也会越来越大,Java也将在开源力量的帮助下,进一步巩固其在企业级应用开发领域的霸主地位。4.JavaWeb开发趋势未来JavaWeb开发技术的发展趋势仍然是多元化发展。其中的任何一种技术,都有其优、缺点,如Tapestry是一种组件式框架,功能强大,但学习曲线陡;JSF也是一种组件式框架,而且又是JavaEE的标准之一,但仍不够成熟。在JavaWeb开发领域,“理性分析,合理运用”-这是正道。纵观2006,JavaWeb开发技术的发展脚步一刻也没减缓:JavaEE5正式发布(JSF版本为1.2,JSP版本为2.1);Tapestry4.0正式发布;Spring2正式发布;Struts2正在努力打造中,并发布了2.0.1BETA版。就我自己的看法,2006年Java界最重要的事件绝对是Java开源!其意义必重大、影响定深远!随着Java开源,开源社区已是“就等东风来”,有关Java的各种技术和应用,在增添了开源的魔棒的挥舞间,终会是精彩纷呈。期待2007,JavaWeb开源世界美好依旧!并
本文标题:Web框架主流上分为两类
链接地址:https://www.777doc.com/doc-4470298 .html