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