阅读更多

13顶
8踩

企业架构

原创新闻 美国高级工程师谈Struts 走向

2008-08-12 11:40 by 见习记者 lvbo744 评论(3) 有9582人浏览
自从2000年Apache Struts出现以来,它在大多数的标准下都运行良好,帮助开发出了许许多多基于Java的Web应用程序。Struts是利用服务器端生成的HTML和客户端验证的Javascript的完美结合,使开发和维护变得更加容易。随着时间的推移,用户对Web应用程序的要求不断增加,Struts 1.0几乎还滞留于原地,给Web开发者留下了越来越多无趣的”衔接”代码,如何才能建立一个完美的框架结合体呢?

Struts的前世今生

     在JavaOne 2005大会上,一些Struts的开发者们与Rich Feit(Apache蜂巢计划的提交者)还有一些Struts的用户共聚一堂,讨论Struts的未来。与会者提出了Struts Ti的项目,它描述了这样一个框架,能够集众家所长,重新组合成一个堪称完美的框架。可是Struts本身的问题出现了,Struts 1.0的代码库不适合大幅度的改进,而它本身的特性设置也相当有限,缺乏了像Ajax的快速和可扩展性。

同样在JavaOne会上,笔者还与Webwork的核心架构师Jason Carreira讨论了关于OpenSymphony WebWork 2的项目,探讨我们如何能更好地协同工作。对于在XWork上进行开发,笔者还是十分感兴趣的,特别是它们核心的命令模式框架,但Jason Carreira建议笔者直接在WebWork 2上进行开发。当我和Rich使用了最初几个Struts Ti的版本后,我们决定采纳Jason的建议。

     我们认为,Struts应该满足高级应用程序的需求,并且在WebWork 2框架中的开发经历也证明了这点,Rich和笔者大多数时间都与一位WebWork 2的高级开发者Patrick Lightbody一起工作,在这段时期内,Patrick和Spring WebFlow项目的创建者Keith Donald从各个角度考虑了关于一个全新的Web框架的构想,希望能将它们结合在一起,也就是将Keith的Spring WebFlow和Ted Husted与笔者的Struts以及Patrick和Jason的WebWork与Rich的Beehive结合在一起,探讨了将这些平台结合到一个框架中的可能性。

     不幸的是,细节方面的困难出现了,Beehive和WebFlow无法将其压缩和转换方面的特性进一步融合,同时还有项目的所有者、商标以及身份等问题,不久,这个团队就解散了。

     我们不想就这样解散,笔者和Ted(Apache软件基金会的成员)开始与Patrick(WebWork 2的高级开发者)和Jason(Webwork核心架构师)探讨如何能让我们更好地合作,Ted产生了Struts与WebWork合并的想法。

由于Struts Ti还是基于WebWork设计的,那么将WebWork的代码转向Struts项目并不是件难事。我们在一月开始了关于WebWork 2的Apache Incubator进程,并完成了WebWork 2代码。

Struts 2的由来

    同时,Struts本身也在为项目的核心识别,进行了激烈的竞争,到底它是不是多重Web框架,Struts包括了Apache Shale,它是一个包含了JSF的Web框架。作为一个Struts的子项目,有着Struts Action 1(现在称之为Struts 1)与Struts Action 2(完成了的WebWork 2代码)的一些特征。不幸的是,这些子项目让开发者们有些混淆不清,他们都用一个单一框架表示”Struts”。

    在尝试将Struts Action 2与Shale的子项目结合到一个单独的Struts 2之后,Shale的开发者意识到,如果这些能成为他们以后工程中的开发框架,也是不错的选择。Struts Action 2很快就更名为简洁的Struts 2。

如今,Apache Struts项目已经有它的框架的两个主要版本,但它仍是一个基于Action的框架项目。并且WebWork仍然在定期发布程序补丁,直到Struts 2达到GA或是最终稳定,但所有新的开发却都是使用Struts 2代码。

由此看来,想要在Struts与WebWork的合并中寻找什么奇迹是不可能的,还是另寻途径更好。但是我们不会放弃当初Struts Ti的构想,为将来做出一个集众家所长的完美框架而努力。

编后:作者在其BLOG中声称,写作本文的目的是为了说清楚Struts 2.0项目的由来,以及为什么它包含了WebWork 2代码。合并的本身就是一件难处理的事,甚至在开源社区也能看到端倪,两个项目之间构成一个好的合并,是非常罕见的,且还需要经过争辩,同时也希望合并的热潮能遍布开源的世界。

13
8
评论 共 3 条 请登录后发表评论
3 楼 跳跃的心灵 2011-01-03 23:23
开拓了眼界
2 楼 mimang2007110 2010-10-26 12:12
最近学习了struts2,感觉真的是一个飞跃性的框架,比struts1.X强的太多了。
1 楼 ggweixudong 2009-06-30 11:10

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • asp.net+sql2000采用多层架构 功能很强大的BBS

    功能绝对强大,而且界面也很美观,这是我在校期间做的最成功的一个网站,如果是应付毕业设计的话绝对没问题的。本人现在已经工作,好东西还是大家分享比较好! 对了...如果不能打开 请下个asp.net 应用程序布丁,切记......

  • 全面优化ASP应用程序的性能(转载)

    ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境,而在ASP中最常用的脚本语言就是VBScript了。虽然ASP的脚本语言很简单,但是要想让一个ASP程序能够最优化的运行也不是一件简单的事情。   现在国内的网络带宽很有限,网络十分拥挤,如何使得自己的ASP应用程序能够快速的运行就成为了每一个ASP程序员的梦想了。那就跟随我来一同加速你的ASP程序

  • ASP程序性能测试报告

    ASP动态生成的内容以什么方式输出效率最高?最好用哪种方法提取数据库记录集?本文测试了近20个这类ASP开发中常见的问题,测试工具所显示的时间告诉我们:这些通常可以想当然的问题不仅值得关注,而且还有出乎意料的秘密隐藏在内。一、测试目的   本文的第一部分考察了ASP开发中的一些基本问题,给出了一些性能测试结果以帮助读者理解放入页面的代码到底对性能有什么影响。ADO是由Microsoft开发

  • 22个提高ASP性能的技巧(1-12)(转)

    介绍 对于ASP程序来说,性能非常重要;必须在最初设计程序时就要考虑到性能,否则以后恐怕就要因为性能问题而重写代码。怎样才能使ASP程序性能达到最大呢?本文就将介绍一些提高ASP程序性能的技巧。 技巧1:将常用数据在Web服务器...

  • asp优化:最大限度优化你的Asp性能

     ASP 能快速执行你的动态网页,但你还可以通过紧缩代码和数据库连接以使它们执行更快。这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度的详细文章。对于一个急燥的用户来说,任何在按下用户按钮到结果出现在它们的屏幕之间的延迟可能意味着它们会转到浏览其它的站点?假如你的是商业站点,这有可能意味着失去潜在的销售。我们没有任何办法控制用户的带宽,但我们的确能通过优化Asp 站点来获得最佳的性能。大部

  • 浅谈如何增强ASP程序性能

    Session在繁忙站点上使用时有几个缺陷。繁忙的意思是:站点上每秒有上百的页面被请求,或者同时有上千的访问用户。这个技巧对于那些要求水平扩展强 的站点非常重要,也就是指这些站点:它们利用多个服务器完成数据装载或者处理大量容错。对于小型站点,比如内部网Intranet,Session是非常 值得提倡的。 再次重申,ASP自动地为每一个首次点击Web服务器的用户创建一个Session,每一个Session占有大约10KB的内存,生存期默认是20分钟。 使用Sessi

  • 使用lambda输出容器元素

    头文件 iterator algorithmcopy(ivec.begin(), ivec.end(), std::ostream_iterator<string>(std::cout, " "));

  • ASP.NET强大的性能

    ASP.NET强大的性能crystal译 ·yesky     一个程序,速度是一件非常令人渴望的东西。一旦代码开始工作,接下来你就得尽可能的让它运作的快些,再快些,在ASP中你只有尽可能拧干你的代码,以至于不得不将他们移植到一个仅有很少一点性能的部件中。但现在呢,微软将推出的ASP.NET会妥善的解决这一问题.  兼容性  ASP.net与ASP兼容,因此没有必要担心你现存的应用程序会在IIS的

  • 全面优化ASP应用程序的性能

    ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境,而在ASP中最常用的脚本语言就是VBScript了。虽然ASP的脚本语言很简单,但是要想让一个ASP程序能够最优化的运行也不是一件简单的事情。    现在国内的网络带宽很有限,网络十分拥挤,如何使得自己的ASP应用程序能够快速的运行就成为了每一个ASP程序员的梦想了。那就跟随我来一同加速你的ASP

  • 提高ASP性能的最佳选择

    提高ASP性能的最佳选择作者:Iasky | 文章出处:未知ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独自衡量为了提高

  • 50种方法巧妙优化你的SQL Server数据库

    查询速度慢的原因很多,常见如下几种:    1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)    2、I/O吞吐量小,形成了瓶颈效应。    3、没有创建计算列导致查询不优化。    4、内存不足    5、网络速度慢    6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)    7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)    8、sp

  • AWS Lambda最佳实践之利用容器重用来提高函数性能

    AWS Lambda最佳实践之利用容器重用来提高函数性能 AWS Lambda最佳实践: 利用容器重用来提高函数性能。 确保您的代码检索到的外部化配置或依赖关系在初次执行后在本地存储和引用。限制变量/对象在每次调用时的重新初始化,而是使用静态初始化/构造函数、全局/静态变量以及单例。保持运行并重复使用连接 (HTTP,数据库等),它们在上次调用时建立。 初学Lambda时

  • 什么才是提高ASP性能的最佳选择?(一)

       ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价。   本

  • 最大限度优化你的Asp性能-ASP教程,性能优化

    最大限度优化你的Asp性能 ASP 能快速执行你的动态网页,但你还可以通过紧缩代码和数据库连接以使它们执行更快。这是一 篇关于怎样精简代码和Asp 特征以获得最快执行速度的详细文章。对于一个急燥的用户来说,任何在按 下用户按钮到结果出现在它们的屏幕之间的延迟可能意味着它们会转到浏览其它的站点?假如你的是商 业站点,这有可能意味着失去潜在的销售。 我们没有任何办法控制用户的带宽,但我们的确能通过优化

  • 提高ASP性能的办法[转载]

    ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都 是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只 能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价。 本文分为...

  • 最大限度优化你的Asp性能

    google_ad_client = "pub-24305016

Global site tag (gtag.js) - Google Analytics