Spring MVC與Struts比較

Struts2與SpringMVC都是比較優秀,也是被普遍使用的Web開發框架,那麼他們之間有什麼區別呢?今天小博老師就跟你們來討論下這個問題。spring

5,1.tmp_副本.png

Struts工做流程圖安全

Struts與Spring之間主要有如下幾點區別:restful

一、Struts2是類級別的攔截, 一個類對應一個request上下文。SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,因此說從架構自己上SpringMVC就容易實現restful url,而struts2的架構實現restful比較困難。由於Struts2中Action的一個方法能夠對應一個url,而其類屬性卻被全部方法共享,這也就沒法用註解或其餘方式標識其所屬方法了。session

二、SpringMVC的方法之間基本上是獨立的,獨享request response數據,請求數據經過參數獲取,處理結果經過ModelMap交回給框架,方法之間不共享變量。而Struts2方法之間也雖然是獨立的,但其全部Action變量是共享的,一個Action對象對應一個request上下文。架構

三、因爲Struts2須要針對每一個request進行封裝,把request,session等servlet生命週期的變量封裝成一個一個Map,供給每一個Action使用,並保證線程安全,因此在原則上,是比較耗費內存的。框架

四、 攔截器實現機制上,Struts2有以本身的interceptor機制,SpringMVC用的是獨立的AOP方式,這樣致使Struts2的配置文件比SpringMVC複雜。性能

五、SpringMVC的入口是servlet,而Struts2是filter,兩者的機制不一樣,這裏就牽涉到servlet和filter的區別了。url

六、SpringMVC集成了Ajax,使用很是方便,只需一個註解@ResponseBody就能夠實現,而後直接返回響應文本便可,而Struts2攔截器集成了Ajax,在Action中處理時須要安裝插件或者本身寫代碼集成進去,使用起來也相對不方便。插件

七、SpringMVC驗證支持JSR303,處理起來相對更加靈活方便,而Struts2驗證比較繁瑣。線程

八、spring MVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高。

九、SpringMVC開發效率和性能高於Struts2。

十、SpringMVC能夠認爲已經100%零配置。

相關文章
相關標籤/搜索