Spring MVC與Struts2的區別

2022-09-16 17:24:12 字數 1424 閱讀 6062

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%零配置。

strut2 0學習筆記

問題一 form action defaulting to action attribute s literal value 解決方案如下 頁面顯示資訊 struts.xml配置資訊 welcome.jsp error.jsp login.jsp 問題二 struts2不顯示label標籤 刪除掉s...

strut2 上傳檔案

jsp頁面 服務後台 需要兩個jar包乙個是commons fileupload.jar,另乙個是commons io.jar 注意,file並不是指前端jsp上傳過來的檔案本身,而是檔案上傳過來存放在臨時資料夾下面的檔案 private file upload 上傳的檔案內容的物件與表單中的nam...

lucene solr配置,整合到struts中

將目錄下example solr中的檔案拷到某一目錄 solr.xml不能拷過去 將此目錄設為solr home.並在tomcat的server.xml中加入如下內容 在工程的web.xml中加入如下內容 solrrequestfilter org.apache.solr.servlet.solrd...