SpringMVC與Struts2區別與比較總結

SpringMVC與Struts2區別與比較總結

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

轉載于:https://www.cnblogs.com/nanfeng99/p/11240125.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386315.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386315.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386315.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解析底層原理!月薪20k+的Android面試都問些什么?深夜思考

正文 Android行業主要問題是初級Android太多了,會寫xml和Activity的程序員太多了,初中級程序員面臨很大的競爭,現狀也就偏于高級開發者。越來越多的初中級Android程序員找不到滿意的工作,甚至根本找不到工作!所以很多…

windows2000 ,windowsXP和windows2003共享頁面文件

為了緩解大型應用程序對系統內存的壓力,windows系統采用了頁面文件(windows2000以后被叫做pagefile.sys,放在系統分區的根目錄下),來存儲內存中暫時不用的數據或程序.從而提高系統的性能.一般應該將頁面文件的最小值設置為物理內存的2倍,最大值也設為最小值的2倍.拿現在主流的5…

解鎖Android性能優化的五大誤區!滿滿干貨指導

籠統來說,中年程序員容易被淘汰的原因其實不外乎三點。 1、輸出能力已到頂點。這個人奮斗十來年了,依舊碌碌無為,很明顯這人的天花板就這樣了,說白了,天賦就這樣。 2、適應能力越來越差。年紀大,有家庭&…

python查看文件的編碼格式

pip install chardet 執行 import chardet f open(a.doc,r) data f.read() print chardet.detect(data) 結果 {confidence: 0.64465744, encoding: utf-8} 前面是相似度 后面是編碼格式 或者 return chardet.detect(data).get("encoding") 直接獲取文件編碼格式 轉…

意外收獲字節跳動內部資料,一篇文章幫你解答

前言 俗話說“生于憂患,死于安樂”,其實大部分中年危機,就是在安樂中產生的。 有的人或許會反駁,“照你這么說,我還必須奮斗了,不奮斗就要死,難道選擇安逸的生活就不對嗎?我就沒有…

成功跳槽百度工資從15K漲到28K,已整理成文檔

開頭 在一般的互聯網公司的技術人員的面試中,大概會經歷3到4輪的面試,差不多2-3輪的技術面,還有1輪的HR面試,有人面試題是有關“目標”,有的關于“方法”,有的關于“算法”,有的關于“基礎”。…

oracle pl/sql 基礎

PL/SQL筆記PL/SQL塊中只能直接嵌入SELECT,DML(INSERT,UPDATE,DELETE)以及事務控制語句(COMMIT,ROLLBACK,SAVEPOINT),而不能直接嵌入DDL語句(CREATE,ALTER,DROP)和DCL語句(GRANT,REVOKE) 1.檢索單行數據 1.1使用標量變量接受數據 v_ename emp.ename%type; v_sal emp.sal%…

我三年開發經驗,從字節跳動抖音離職后,吐血整理

前言 前不久寫過一篇博客,里面介紹了一位朋友由二本渣渣畢業在外包公司工作兩年多后,跳槽逆襲成功,現在進入了OPPO公司的故事。 后面很多朋友私信我,表示想要這位朋友的面經。 其實我覺得,大家對面經完全沒必要這么…

熊逸《唐詩50講》田園篇 - 學習筆記與感想

此篇已加入熊逸《唐詩50講》學習筆記索引目錄。 一、田園篇具體內容 田園牧歌對于在現代社會里打拼的人們來說,距離一萬光年,但是身心俱疲的時候,讀兩首田園詩卻是最好的治愈,因為詩里歲月柔軟、風物沛然。這一篇里,熊…

我三年開發經驗,從字節跳動抖音離職后,滿滿干貨指導

前言 程序員這個行業,日新月異,技術體系更新速度快,新技術新框架層出不窮,所有的技術都像是一個無底洞,當你學得越多就會發現不懂的越多,不懂的越多,需要學習的就更多。 因此,一旦…

jquery $(this)和this

jQuery中this與$(this)的區別 $("#textbox").hover( function() { this.title "Test"; }, fucntion() { this.title "OK”; } ); 這里的this其實是一個Html 元素(textbox),…

我了解到的面試的一些小內幕!順利通過阿里Android崗面試

前言 從畢業到現在面試也就那么幾家公司,單前幾次都比較順利,在面到第三家時都給到了我offer!前面兩次找工作,沒考慮到以后需要什么,自己的對未來的規劃是什么,只要有份工作,工資符合自己的要求…

React-redux框架之connect()與Provider組件 用法講解

react-redux 在react-redux 框架中,給我提供了兩個常用的API來配合Redux框架的使用,其實在我們的實際項目開發中,我們完全可以不用react-redux框架,但是如果使用此框架,就如虎添翼了。 我們來簡單聊聊這兩個常用的API …

我們究竟還要學習哪些Android知識?吐血整理

前言 閑來無事在家偶然翻到了之前整理的文檔和面試要做到準備路線,雖然內容有點多,但是技多不壓身,多多益善 本部分內容是關于Android進階的一些知識總結,涉及到的知識點比較雜,不過都 是面試中幾乎常問的知識點&…

海明距離

處理 非遞減或者非遞增 排列 的時候 &#xff0c;可以使用計數排序&#xff0c;將時間 復雜度變為 O&#xff08;N&#xff09;&#xff0c;空間復雜度變為O&#xff08;1&#xff09;。 1 int heightChecker(vector<int>& heights) {2 vector<int> res(10…

我們究竟還要學習哪些Android知識?滿滿干貨指導

咸魚翻身不斷上演 2018年5月份&#xff0c;北京&#xff0c;在所謂的互聯網寒冬里&#xff0c;一個普通二本的學生&#xff0c;在小公司工作一年后&#xff0c;跳槽拿到了百度的offer&#xff0c;月薪從9k變為17k&#xff0c;漲薪幅度接近100%。 2018年底&#xff0c;上海&am…

ElasticSearch6.3腳本更新

使用上篇文章創建的索引進行學習&#xff1a;https://www.cnblogs.com/wangymd/p/11200996.html 官方文檔&#xff1a;https://www.elastic.co/guide/en/elasticsearch/painless/6.3/painless-examples.html 1、腳本更新指定字段 方式1&#xff1a; POST test_index/test_type…

我們究竟還要學習哪些Android知識?看這一篇就夠了!

雪上加霜 本人一名Android程序員&#xff0c;今年29歲了。大廠小廠都呆過&#xff0c;現在在騰訊工作&#xff01;明明工作順利&#xff0c;家庭和睦兒女成全&#xff0c;但是總是會感覺到&#xff0c;一股無形的壓力&#xff0c;推著我走&#xff01;作為一名程序員我最怕的不…

Daily scrum 10.15

今天新的UI到了&#xff0c;展示如下。 Icon&#xff1a; Wallpaper&#xff1a; Lay out&#xff1a; search resutls&#xff1a; 感謝我們的UI support Wenchao Shi的幫助&#xff01; 接下來的一周是bug fix階段&#xff0c;我們總結了一下目前的bug&#xff0c;整理如下&a…

我在美團Android研發崗工作的那5年,含淚整理面經

這篇文章主要介紹了20道經典Handler題及答案解析&#xff0c;文中通過示例代碼介紹的非常詳細&#xff0c;對大家的學習或者面試復習具有一定的參考學習價值&#xff0c;內容過多可以先收藏慢慢觀看&#xff0c;需要的朋友們下面隨著小編來一起學習學習吧。 另外各位觀眾老爺覺…