阅读更多

28顶
7踩

企业架构

翻译新闻 Apache Struts 2.2.3 发布

2011-05-09 09:31 by 正式编辑 hantsy 评论(42) 有21209人浏览

Apache Struts 团队发布了最新的 Struts 2.2.3 GA(GA代表最高质量)。

下载地址:http://struts.apache.org/download.cgi#struts223

同时通过  Maven repository 对外提供,Group ID 为org.apache.struts。

Apache Struts 2.2 系列对规范的最低要求: Servlet API 2.4, JSP API 2.0, and Java 5.

本版本发布详细说明参见:http://struts.apache.org/2.2.3/docs/version-notes-223.html

使用任何版本的 Struts时,如果发现问题,可以提交到邮件列表,当然也可以提交一个Bug到JIRA中。

 

 

 

 

 

 

28
7
评论 共 42 条 请登录后发表评论
42 楼 allenny 2011-05-12 16:15
Struts1,2都用过,感觉还是Tapestry好,设计理念很有特点,视图与逻辑分离的很彻底。
41 楼 cpsing 2011-05-11 17:34
volking 写道
sourceforge.net 被GFW过滤,
nmb

没有吧,北京联通正常
40 楼 volking 2011-05-11 17:21
sourceforge.net 被GFW过滤,
nmb
39 楼 kjj 2011-05-11 10:37
hantsy 写道
Struts 2中OGNL是一大问题(需要重新学习,性能低下,Tapestry5放弃它的原因也在此),应该支持JSTL方式,或者变成Pluginable的方式,让用户选择。
另外对于最新的标准(JSR303,JSR299, JSR330等等,没内置支持),AJAX支持实在不好。

貌似,ognl需要重新学习很困难似的
性能底下,有多么低下,有对比资料吗,对系统的影响有多么大
jstl本身就支持,是你没用而已!!!
38 楼 hantsy 2011-05-11 10:28
Struts 2中OGNL是一大问题(需要重新学习,性能低下,Tapestry5放弃它的原因也在此),应该支持JSTL方式,或者变成Pluginable的方式,让用户选择。
另外对于最新的标准(JSR303,JSR299, JSR330等等,没内置支持),AJAX支持实在不好。
37 楼 77tt77 2011-05-11 09:47
都还没用过spring mvc.一直用struts2
有机会用下。
36 楼 ln1058 2011-05-11 09:28
用struts2就应该取其精华,去其糟粕。
我在项目中用只用struts2的拦截器和监听器。
用那些set/get方法传值到页面基本不用,还是用标准的request。struts标签一直就没用过,还是用最原始的JSTL。
个人认为这样结合spring应该算得上是最佳实践了吧
35 楼 7454103 2011-05-11 09:13
引用
支持 spring3 mvc , 谁用谁知道。

  大家都知道!
34 楼 rentianchou 2011-05-10 17:57
suyulin6688 写道
支持 spring3 mvc , 谁用谁知道。

确实是这样滴
33 楼 suyulin6688 2011-05-10 16:29
支持 spring3 mvc , 谁用谁知道。
32 楼 bonepole 2011-05-10 14:49
spring3 mvc 很好很强大
31 楼 油炸大龙虾 2011-05-10 13:24
评论都看过一遍了,呵呵。
善意的提醒,你们去看看国人挖掘struts2安全性的bug分析,我是看这里的
www.inbreak.net
如果说我是广告贴,那我也没办法,呵呵。jeye水缸已经够大了。
30 楼 白糖_ 2011-05-10 10:00
struts2沉寂太久了,效率比不上spring mvc
只能期待3.0后的效果
29 楼 skzr.org 2011-05-09 23:58
我的数据,是指的“Requests per second”
ab -n 10000 -c 10 连续测试同一个请求3次后的结果
笔记本 core2 P8400, 4G mem ubuntu 64bit系统jdk1.6.24 64bit
jvm options:-server -Xms2048M -Xmx2048M
请求只是一个简单的controller到jsp hello world!页面

当然我相信如果在台式机上测试的话比我的笔记本快多了。
同时测试时直接用localhost来排除网络IO对测试结果的影响

mlw2000 写道
skzr.org 写道

以下是我总结的为什么选择spring:
1. 看好spring mvc的速度+spring生态环境的欣欣向荣
2. Spring生态:从安全到各种服务集成具有天生的优势
3. Spring对REST的支持

附带,MVC测试:
tomcat maxThread=10;使用ab -n 10000 -c 20 测试一个helloworld control!
1. spring3 mvc访问jsp速度高达5、6K/s
2, spring3 mvc采用freemarker速度高达5、6K/s
3. struts2(关闭log,关闭开发模式) mvc最高还达不到2K/s
  i. struts2中使用interceptor-ref=basicStack 或者 使用empty interceptor 可以接近2.2k/s


给出测试程序和测试环境,让大家看真实的对比,不知道你说的"5、6K/s"是指什么,"Requests per second"还是"Transfer rate"?
下面是我简单测试结果:
Document Path:          /struts2/example/hello-world-ftl.action?name=name
Document Length:        153 bytes

Concurrency Level:      20
Time taken for tests:   29.405 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      29400882 bytes
HTML transferred:       15300459 bytes
Requests per second:    3400.80 [#/sec] (mean)
Time per request:       5.881 [ms] (mean)
Time per request:       0.294 [ms] (mean, across all concurrent requests)
Transfer rate:          976.43 [Kbytes/sec] received

28 楼 paramore 2011-05-09 22:25
小丑真多啊
27 楼 jackra 2011-05-09 20:17
servlet3.0多牛啊。。。。搞什么struts。。。。
26 楼 kjj 2011-05-09 19:27
油炸大龙虾 写道
破烂框架,没事干就喜欢自定义,处处给人挖坑。人家应用服务器打造出来多少年的安全性都给你毁了。这个就是为啥一直struts1的原因。

功夫不行,还瞎嚷嚷,嫌菜刀不利!!!!!!!!!!
25 楼 mlw2000 2011-05-09 18:10
skzr.org 写道

以下是我总结的为什么选择spring:
1. 看好spring mvc的速度+spring生态环境的欣欣向荣
2. Spring生态:从安全到各种服务集成具有天生的优势
3. Spring对REST的支持

附带,MVC测试:
tomcat maxThread=10;使用ab -n 10000 -c 20 测试一个helloworld control!
1. spring3 mvc访问jsp速度高达5、6K/s
2, spring3 mvc采用freemarker速度高达5、6K/s
3. struts2(关闭log,关闭开发模式) mvc最高还达不到2K/s
  i. struts2中使用interceptor-ref=basicStack 或者 使用empty interceptor 可以接近2.2k/s


给出测试程序和测试环境,让大家看真实的对比,不知道你说的"5、6K/s"是指什么,"Requests per second"还是"Transfer rate"?
下面是我简单测试结果:
Document Path:          /struts2/example/hello-world-ftl.action?name=name
Document Length:        153 bytes

Concurrency Level:      20
Time taken for tests:   29.405 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      29400882 bytes
HTML transferred:       15300459 bytes
Requests per second:    3400.80 [#/sec] (mean)
Time per request:       5.881 [ms] (mean)
Time per request:       0.294 [ms] (mean, across all concurrent requests)
Transfer rate:          976.43 [Kbytes/sec] received
24 楼 cw550284 2011-05-09 17:48
不要比较性能,如果要性能就直接servlet
23 楼 jansel 2011-05-09 17:30
用惯Struts2了,Struts2的架构很不错,不过性能真的是个问题。

但是性能的瓶颈是在OGNL上面,不知道用了最新的OGNL性能会不会提高,或者用MVEL。

发表评论

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

相关推荐

  • Delphi--抽象方法、重载、覆盖。继承实例

    Delphi--抽象方法、重载、覆盖。继承实例Delphi--抽象方法、重载、覆盖。继承实例

  • Delphi的OverRide、OverLoad和Virtual方法

    1.方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。 如果在一

  • delphi 之 override overload

    delphi 之 override overload override 参数与返回值要与父类相同 overload 参数或返回值与父类不同 若参数有默认值, 例如:function GetIndexFileName: string; function GetIndexFileName(aIndexType:string = 'OFI'): string; 则调用时GetIndexFileName 会不清楚调用哪个函数 ...

  • delphi-多态(overload,override)与接口(interface)

    delphi-多态(overload,override)与接口(interface) 先来聊聊重载问题(也叫超载,总之是那个Overload)吧。在同一个类中,出现多个同名的方法的现象就是Overload。联系起上面提到的兄弟俩,我想这更好理解。他们从外观上是相似的,不同的是某些“参数”,类型上可能各异或是个数上不同。 在Delphi中,所有方法都默认是静态的,便于编译器和链...

  • Delphi重载,覆盖,多态

    2019独角兽企业重金招聘Python工程师标准>>> ...

  • delphi中使用override需要注意的地方

    在override时,如果override的是procedure,则加上关键字inherited; 就会执行父类同名procedure的所有过程,然后再执行子类中特有的过程。如果override的是function则不会执行父类中同名function的内容。但是,可以通过下面的方法来执行父类的内容:        例如:     TBaseCls = Class     public

  • Delphi的OverRide、OverLoad、Virtual、Dynamic、Static方法

    <br />1.方法的重写Overriding 和重载Overloading 是Java多态性的不同表现 。重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。<br /> 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding )。<br /> 子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。<br /> 如果在一个类中定义了多个同名的方法,它们或有

  • delphi Overload 和override的区别

    overload是重载;相同的函数名,参数不同,使用不同的函数体override 是对父类声明的vitural或dynamic方法进行覆盖 overload的使用方法: [delphi] view plain copyfunctionmax(a,b:Byte):byte;overload;//声明成重载函数functionma...

  • 方法重写(override)和方法重载(overload)的区别

    1.什么是方法的重载?        重载的存在是为了解决调用方法时,出现方法名不同,但参数列表不同的情况,比如类的构造方法就常用到方法的重载,调用构造方法创建对象时,传入不同的参数就可以方便的对属性赋值或者不赋值。2.什么是方法的重写?        重写的存在是为了解决子类调用父类的方法时,对父类的方法的得到的结果不满意,想拥有自己想要的结果,就对父类的方法进行了重写。3.方法的重载和方法的重...

  • C++ 和 Delphi 的函数覆盖(Override)与重载(overload

    C++ 和 Delphi 的函数覆盖(Override)与重载(overload) Spacesoft【暗夜狂沙】 在面向对象编程中,当子类继承了来自基类的函数后,子类有可能需要对其中的一些函数作出与基类不同处理,比如: class CHuman { public: void SayMyName()//打印出对象的姓名 { cout } }; 那么

  • delphi 重载 重写_Delphi方法重载和默认参数

    delphi 重载 重写 Functions and procedures are an important part of the Delphi language. Starting with Delphi 4, Delphi allows us to work with functions and procedures that support default parameters (maki...

  • Delphi方法重载

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons; type TForm1 = class(TForm) SpeedButton1: TSpeedButton; ...

  • Delphi 重载方法与重定义方法

    转载于:https://www.cnblogs.com/fanweisheng/p/11406338.html

  • C++函数的隐藏(遮蔽)、覆盖(override,即重写,多态的实现原理)、重载(overload)

    一、关于遮蔽,我们需要注意什么? 我们知道C++的虚函数是为了实现多态。对于虚函数,有以下的几点需要注意: 1、基类和派生类成员的名字一样时会造成遮蔽 2、不管函数的参数如何,只要名字一样就会造成遮蔽。换句话说,基类成员函数和派生类成员函数不会构成重载,如果派生类有同名函数,那么就会遮蔽基类中的所有同名函数,不管它们的参数是否一样。 3、即使派生类的成员(包括成员变量和成员函数)和基类中成...

Global site tag (gtag.js) - Google Analytics