专业回答
1、spring3开发效率高于struts;
2、spring3 mvc可以认为已经100%零配置;
3、struts2是类级别的拦截, 一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应。所以说从架构本身上 spring3 mvc就容易实现restful url,而struts2的架构实现起来要费劲。因为struts2 action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了;
4、spring3mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量。而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的。这不会影响程序运行,却给编码读程序时带来麻烦 ;
5、由于Struts2需要针对每个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全。所以在原则上,是比较耗费内存的。
2、spring3 mvc可以认为已经100%零配置;
3、struts2是类级别的拦截, 一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应。所以说从架构本身上 spring3 mvc就容易实现restful url,而struts2的架构实现起来要费劲。因为struts2 action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了;
4、spring3mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量。而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的。这不会影响程序运行,却给编码读程序时带来麻烦 ;
5、由于Struts2需要针对每个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全。所以在原则上,是比较耗费内存的。
2013-08-15 11:08
提问者采纳
我也推荐不要使用struts2了,spring的mvc模式确实会大大降低维护成本,缺点就是这方面的教程很少,官方的文档本身也描述的过于简单。所以,学习成本很高的,不过spring有一个官方开发工具,可以创建一个完整的spring mvc实例,这个实例还是很有看头的,推荐使用spring官方推出的开发工具开发spring mvc。 推荐你现在的项目依旧用spring、struts2、hibernate开发,不过可以兼顾学习一下spring mvc,项目开发还是先稳妥一点(我就有过使用新技术造成项目严重延迟的问题,被“奖励”了),不过长远看来,spring mvc的优势更加明显,更重要的是调试更加简单,维护也很方便,spring类似于面向切面编程、IoC也能获得发挥的余地。
-
提问者评价
-
谢谢!
评论
2
0
2013-08-14 10:19
bingfengfzl
五级
spring mvc要比struts简单,其次更好的整合了spring ,效率也要比struts高,原因是struts的值栈相信的struts的效率,struts出错率要比spring mvc高,如果是方便的话struts比spring mvc更方便,写好配置文件用*匹配路径,基本就继承,写get,set方法就可以了