Controller 是 SpringMVC的控制層。Action 是 Structs 的控制層。
SpringMVC的Controller和Struts2的Action均是實現MVC模式的控制層。兩者區別如下:
1.SpringMVC可精確控制到方法上,Controller可以單例開發,Struts2的Action則是多例prototype開發,基於類進行攔截請求的。
2.SpringMVC的速度一般比Struts2要快,主要是s標簽的原因。所以建議使用jstl表達式。
3.Struts2曾經爆出重大漏洞,就是ognl表達式URL注入的漏洞。目前springmvc還沒有發現什么漏洞。
4.SpringMVC的入口是Servlet,而Struts2是Filter
5.SpringMVC單線程,Controller與Servlet一樣,只有一個實例,每次請求執行對應的方法;Struts2多線程,每次發一次請求都會實例一個Action,每個Action都會被注入屬性。
6.Struts2是類級別的攔截, 一個類對應一個request上下文; SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上SpringMVC就容易實現restful
url,而struts2的架構實現起來要費勁,因為Struts2中Action的一個方法可以對應一個url,而其類屬性卻被所有方法共享,這也就無法用注解或其他方式標識其所屬方法。
7.Struts2更加符合OOP的編程思想, SpringMVC就比較謹慎,在Servlet上擴展。
8.Spring MVC和Spring是無縫的耦合。項目的管理和安全上也比Struts2高
9.SpringMVC開發效率和性能高於Struts2。
10.SpringMVC可以認為已經100%零配置。
---------------------
作者:lin_transform
來源:CSDN
原文:https://blog.csdn.net/lin_transform/article/details/78279352
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!