阅读更多

28顶
7踩

企业架构

翻译新闻 Apache Struts 2.2.3 发布

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

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 条 请登录后发表评论
22 楼 weng 2011-05-09 16:42
skzr.org 写道
fireaap 写道
weng 写道
很多人都说springMVC好,有没有人简单总结下跟struts2比较如何呀? 

至少有一点:一般来说,springmvc的性能比struts2要好。


以下是我总结的为什么选择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

  
21 楼 treblesoftware 2011-05-09 15:41
框架没有必要比来比去。框架的目标是为了我们更简单,更便捷的,在它的规则,按它的思路去架构你的系统。
比如spring mvc,struts,webwork。它们都是对servlet从新进行封装,之后使得我们更简单的去使用它。当然,你只需要使用SERVLET,自己去进行MVC架构一样可以让你的系统很简洁和简单,我用servlet,jdbc,JSTL和JQUERY一样可以写出基于action与service的变形mvc架构的系统,同样可以很简洁,简单。所以,没有必要去争论哪个好,都是不同时代的产物,JAVA程序员竟跟着JAVA标准才是真正的智者。当然,JAVA基础还是很重要的。
20 楼 簡單從泚銷夨 2011-05-09 14:35
用过两年SpringMVC,现在用StrutsMVC,感觉还是SpringMVC干净些,strutsMVC扯到的东西比较多,也有可能是自己用习惯的缘故。
19 楼 85977328 2011-05-09 14:33
spring3 mvc~,~
18 楼 cremains 2011-05-09 14:19
spring好是好,不过好像比struts2用起来要麻烦些。
17 楼 hantsy 2011-05-09 14:05
我比较喜欢Spring 3 的 MVC 的中 REST的支持。。。其他就没有什么好较的
16 楼 Leon.Wood 2011-05-09 13:39
用公司Struts2变种的飘过
15 楼 flysunmicro 2011-05-09 13:33
从08年开始用struts2的飘过。。
14 楼 skzr.org 2011-05-09 13:09
fireaap 写道
weng 写道
很多人都说springMVC好,有没有人简单总结下跟struts2比较如何呀? 

至少有一点:一般来说,springmvc的性能比struts2要好。


以下是我总结的为什么选择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
13 楼 grandboy 2011-05-09 13:08
Spring太强大了,都成了一条龙解决方案了。
12 楼 fireaap 2011-05-09 12:53
weng 写道
很多人都说springMVC好,有没有人简单总结下跟struts2比较如何呀? 

至少有一点:一般来说,springmvc的性能比struts2要好。
11 楼 hilly 2011-05-09 12:48
caoyangx 写道
来晚了,很多人都springmvc了。

同意
10 楼 skyfen 2011-05-09 12:43
还是有很多人在用java框架啊。
9 楼 weng 2011-05-09 12:41
很多人都说springMVC好,有没有人简单总结下跟struts2比较如何呀? 
8 楼 KimShen 2011-05-09 12:14
油炸大龙虾 写道
破烂框架,没事干就喜欢自定义,处处给人挖坑。人家应用服务器打造出来多少年的安全性都给你毁了。这个就是为啥一直struts1的原因。

农民开宝马,只会瞎嚷嚷. 框架固然有问题, 难道是你发现的Bug?
但凡不愿意接受新事物的人,包括hibernate,包括spring mvc3都是怕自己已有的知识排不上用处而已.
7 楼 油炸大龙虾 2011-05-09 12:08
破烂框架,没事干就喜欢自定义,处处给人挖坑。人家应用服务器打造出来多少年的安全性都给你毁了。这个就是为啥一直struts1的原因。
6 楼 KimHo 2011-05-09 11:39
caoyangx 写道
来晚了,很多人都springmvc了。

5 楼 yose 2011-05-09 11:38
spring MVC 何其强大!何必再用struts
4 楼 linvar 2011-05-09 11:02
caoyangx 写道
来晚了,很多人都springmvc了。

3 楼 mlw2000 2011-05-09 10:37
从各种状况来看,Struts 2版本还没有稳定下来,希望2.3版本能做到最好

发表评论

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

相关推荐

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

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

  • 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中对override(重写)和overload(重载)的一些看法

     重写就是用现在的方法覆盖了继承过来的方法,重载就是在不改变继承过来的方法的基础上重新添加一个方法名字一样,但参数或返回值是不一样的。下面举个例子:unit Unit1;interfacetype TStudent=classprivate//...    public//...procedure test;   implementation     procedure

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

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

  • Delphi的OverRide、OverLoad和Virtual方法

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

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

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

  • 【Delphi 基础知识 11】重载函数的使用

    总体而言,重载函数的使用范围很广泛,可以在许多不同的编程场景中提高代码的可读性和灵活性。字符串处理: 在字符串处理中,可能会有不同版本的函数,用于连接、比较、格式化等,以适应不同的参数类型或处理需求。重载函数可使代码更通用。容器类和集合操作: 在处理数组、列表、集合等数据结构时,重载函数可以处理不同类型的元素或执行不同的操作。API设计: 在设计类库或API时,重载函数可以提供更自然、直观的接口,以适应不同的使用情境。图形编程: 在图形编程中,可以使用重载函数来处理不同类型的图形对象,如圆形、矩形等。

  • Delphi 中记录操作重载(Operator Overloading)

    本文介绍很少有资料介绍的记录操作重载方法,非常有用,特别是在分析一些大型源代码的时候,这类语法很少资料介绍。

  • C++中重载(overload)、重写(override)和隐藏的区别

    一、重载(overload) 指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。 (1)相同的范围(在同一个类中) ; (2)函数名字相同; (3)参数不同;(参数的类型,个数,顺序不同) (4)virtual 关键字可有可无。 (5)返回值可以不同; 二、重写(也称为覆盖 override) 是指派生类重新定义基类的虚函数,特征是: (1)不在同一个作用域(分别位于派生类与基类) ; (2)函数名字相同; (3)参数相同; (4)基类函数必须有 vi

  • delphi 中 virtual、reintroduce、override关键词的使用

    虚拟方法和动态方法不同于静态方法,它们可以在其后裔类中被覆盖(overridden),即只有一个方法所在类的祖先类对应的方法是virtual或dynamic的,这个当前类的方法才可以用overide覆盖。当一个覆盖方法被调用时,方法调用中使用的类或对象的实际(运行时)类型决定了哪一个实现是有效的,而非变量声明的类型决定。virtual方法是可以有实现的部分的,也可是在后裔类中override。

  • 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 重载方法与重定义方法

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

  • Delphi面向对象:overload与override

    首先,我想单独说明一下overload,为什么呢?因为overload和对象化关联不大,所以,我感觉单独提出来说明比较好。    我们都知道,在Pascal语法规则中,同一个UNIT里是不能存在两个同名的函数的,例如:  代码:function func(): Boolean;function func(const x: Char): Boolean;这样是会出语法错误的,

  • C++覆盖系统函数的方法

    在编写程序时,我们有时会有覆盖系统函数的需求。比如针对glibc中fork线程不安全的bug,我们可以在程序中实现一个特定的fork,伪代码如下: pid_t fork(void) { lock(); fork();//system call unlock(); }将这个程序编译为myfork.o。 我们的目标是,对于所有使用fork的库,当我们同时链接myfork

Global site tag (gtag.js) - Google Analytics