JavaWeb学习笔记之图解Struts和SpringMVC区别

Posted 小明TI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb学习笔记之图解Struts和SpringMVC区别相关的知识,希望对你有一定的参考价值。

个人心得:

  1. springmvc可以精确控制到方法上,controller可以单例开发,Struts2的action则是多例prototype开发,基于类进行拦截请求的。
  2. springmvc的速度一般比Struts2要快,主要是s标签的原因。所以建议使用jstl表达式。
  3. Struts2曾经爆出重大漏洞,就是ognl表达式URL注入的漏洞。目前springmvc还没有发现什么漏洞。
  4. 怎么说呢,你需要去了解spring和struts2的主要核心得不同。struts2的核心是拦截器,它的拦截是类级别的。spring是dispatchServlet,它的拦截是方法级别的。
  5. 就我目前得项目经验来说,完成同样的功能。一般来说,spring的运行速度是快于struts的。这得益于spring的IOC,但是,并不能说spring就比struts2好。每个框架都有自己的优点,struts2的通配拦截器曾经让多少程序猿欲仙欲死。近两年spring火起来,除了框架性能外,主要是开发同样一个项目的话,spring的开发周期会明显短于其他的框架。你们懂的,周期短意味着什么。所以商业选择框架得话除了性能,便于开发也是很重要的选择。
  6. SpringMVC是采用单例多线程开发,为每个请求单独开辟一条线程独立完成业务,每个方法都拥有自己的变量,不会发生数据不同步的问题;Struts2 采用的是多例多线程,对每个请求都会实例化一个Action,耗费资源。

以上是关于JavaWeb学习笔记之图解Struts和SpringMVC区别的主要内容,如果未能解决你的问题,请参考以下文章

struts2学习笔记之九:struts2的命名空间

struts2学习笔记之十四:使用注解配置Action(不是和spring集成使用)

struts2学习笔记——第一个struts2应用配置

struts2学习笔记之十一:struts2的类型转换器

struts2学习笔记之八:Action中方法的动态调用

框架学习系列 之Struts2框架学习总结