码迷,mamicode.com
首页 > 编程语言 > 详细

Struts2和SpringMvc的区别

时间:2018-11-21 12:27:03      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:没有   单例   而且   就会   mode   线程   驱动   性能   mod   

本质区别:

1、  springMVC基于方法的开发,我们可以通过我们的代码中,我们没有所谓的数据域对象,除了引用的service就只有方法,而Struts2是基于类的开发,该类中有各种各样的全局变量,因此我们说Struts2基于类的开发。

2、  springMVC可以单例开发,并且建议单例开发,因为springMVC通过controller的形参接收数据,方法结束后形参数据销毁;而Struts2则是通过模型驱动或者属性驱动获取数据,而且这些变量都是全局变量,因此Struts2是多例开发。

3、  经常会说Struts2框架性能不好,是由于使用了Struts2的标签,从而加载很多的服务导致所谓的框架慢,所以我们建议使用页面使用jstl

4、  所谓框架的性能,是与提供的服务的多少有关,而不是根据包的大小有关。

 

为什么Struts2中的action要配置成多例:
struts 2的Action是多实例的并非单例,因为一个Action中包含很多方法,也就是每次请求action中的一个方法时,就会产生一个Action的对象。原因是:struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。如果Action是单实例的话,这些数据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。

springMvc有多个请求一个controller时,是同一个controller,是单例。但是对应的方法里面的局部变量不是单例,每次进来对应的是不同的model。

Struts2和SpringMvc的区别

标签:没有   单例   而且   就会   mode   线程   驱动   性能   mod   

原文地址:https://www.cnblogs.com/shenzhichipingguo/p/9993883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!