Struts2與spingmvc區別

來源:互聯網
上載者:User

標籤:效率   擴充   ssi   arc   java   標識   靈活   get   上下文   

1、Struts2是類層級的攔截, 一個類對應一個request上下文,SpringMVC是方法層級的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上SpringMVC就容易實現restful url,而struts2的架構實現起來要費勁,因為Struts2中Action的一個方法可以對應一個url,而其類屬性卻被所有方法共用,這也就無法用註解或其他方式標識其所屬方法了。

2、由上邊原因,SpringMVC的方法之間基本上獨立的,獨享request response資料,請求資料通過參數擷取,處理結果通過ModelMap交回給架構,方法之間不共用變數,而Struts2搞的就比較亂,雖然方法之間也是獨立的,但其所有Action變數是共用的,這不會影響程式運行,卻給我們編碼 讀程式時帶來麻煩,每次來了請求就建立一個Action,一個Action對象對應一個request上下文。
3、由於Struts2需要針對每個request進行封裝,把request,session等servlet生命週期的變數封裝成一個一個Map,供給每個Action使用,並保證安全執行緒,所以在原則上,是比較耗費記憶體的。

4、 攔截器實現機制上,Struts2有以自己的interceptor機制,SpringMVC用的是獨立的AOP方式,這樣導致Struts2的設定檔量還是比SpringMVC大。

5、SpringMVC的入口是servlet,而Struts2是filter(這裡要指出,filter和servlet是不同的。以前認為filter是servlet的一種特殊),這就導致了二者的機制不同,這裡就牽涉到servlet和filter的區別了。

6、SpringMVC整合了Ajax,使用非常方便,只需一個註解@ResponseBody就可以實現,然後直接返迴響應文本即可,而Struts2攔截器整合了Ajax,在Action中處理時一般必須安裝外掛程式或者自己寫代碼整合進去,使用起來也相對不方便。

7、SpringMVC驗證支援JSR303,處理起來相對更加靈活方便,而Struts2驗證比較繁瑣,感覺太煩亂。

8、spring MVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高(當然Struts2也可以通過不同的目錄結構和相關配置做到SpringMVC一樣的效果,但是需要xml配置的地方不少)。

9、 設計思想上,Struts2更加符合OOP的編程思想, SpringMVC就比較謹慎,在servlet上擴充。

10、SpringMVC開發效率和效能高於Struts2。
11、SpringMVC可以認為已經100%零配置。

Struts2與spingmvc區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.