国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
spring mvc 優(yōu)勢(shì)

spring mvc 優(yōu)勢(shì)

 

花時(shí)間看了一下Struts2(WebWork)的教程,對(duì)比了一下,還是覺得Spring MVC更好。
原因有幾點(diǎn):
1。Spring MVC的controller+command object模式比Struts2的Action模式更安全一些。而在Struts2中,自動(dòng)數(shù)據(jù)綁定發(fā)生在Action對(duì)象上。這樣,在Action類中任何有Set方法的屬性都有可能被http request的參數(shù)覆蓋,在設(shè)計(jì)Action類時(shí)如果不小心,就可能會(huì)產(chǎn)生安全隱患。比如某個(gè)身份認(rèn)證方案可能會(huì)依賴于Action的某個(gè)屬性,如role來(lái)判斷用戶是否具有訪問該action的權(quán)限。這樣,惡意用戶可以通過在request參數(shù)中包含一個(gè)role參數(shù)來(lái)改寫action本身對(duì)role屬性的設(shè)置。
在Spring MVC中,controller和command object是兩個(gè)獨(dú)立的類,自動(dòng)數(shù)據(jù)綁定只發(fā)生在command object上,對(duì)controller沒有影響,就不存在這個(gè)問題。
2。Struts 2的action類本身是線程不安全的,不能使用singleton模式來(lái)創(chuàng)建。在我看來(lái),這個(gè)是比較ugly的。特別是一些處理邏輯比較復(fù)雜的action,每次創(chuàng)建一個(gè)新對(duì)象實(shí)例的代價(jià)可能是比較高的。而Spring MVC的command object基本上都是POJO,創(chuàng)建實(shí)例的代價(jià)很低。
3。Struts 2的jsp tags使用OGNL作為表達(dá)式語(yǔ)言。我個(gè)人覺得這個(gè)語(yǔ)言功能過強(qiáng),特別是能夠直接訪問action本身的方法,這類功能很容易被濫用,從而重蹈過去jsp<% %>標(biāo)記的覆轍。
當(dāng)然,Struts 2也有很多功能是值得Spring吸取的,比如redirect-action,對(duì)namespace的支持等等。特別是Struts 2的底層框架XWork的最新版本2.0beta3已經(jīng)支持基于annotation的validation,這個(gè)Spring應(yīng)該盡快跟進(jìn)。
不過我還是覺得Spring MVC更好些。

下面列出我對(duì)這兩個(gè)都很優(yōu)秀的框架的評(píng)估,請(qǐng)各位幫忙評(píng)判一下:

------------------------SpringMVC-----Struts2.0(webwork2)--------------獲勝者
開發(fā)效率----------------5-------------?---------------------------------?

運(yùn)行效率----------------5-------------4(action非單例)------------------SpringMVC

學(xué)習(xí)成本----------------4-------------3(同事反應(yīng)學(xué)習(xí)曲線比較陡)--------SpringMVC

與Spring集成------------5(無(wú)縫集成) 4----------------------------------SpringMVC
難易程度

validator集成-----------4(commons)--5----------------------------------Struts2.0

AJAX集成----------------4-------------5(豐富的tag支持)-----------------Struts2.0

可測(cè)試性----------------5-------------5----------------------------------平局

 

從實(shí)際開發(fā)效果來(lái)看,在4個(gè)項(xiàng)目用了spring2.5 mvc,2個(gè)項(xiàng)目用struts2,發(fā)現(xiàn)招聘時(shí),都是struts1,struts2的求職者,而spring mvc全得現(xiàn)培訓(xùn),不過學(xué)習(xí)曲線實(shí)在是低,把架構(gòu)搭好之后,絕大部分的人都能很快適應(yīng),并快速開發(fā)。而struts2的開發(fā),以前2個(gè)項(xiàng)目,都是剛好別人搭的架構(gòu)(完全照搬天乙社區(qū)里面的開發(fā)方式),實(shí)際做功能測(cè)試和性能測(cè)試時(shí),問題成堆。struts2的數(shù)據(jù)綁定簡(jiǎn)直就是災(zāi)難,新手經(jīng)常性的把參數(shù)給弄亂。
 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java面試⑥框架部分
【SSH】泛泛談SSM和SSH
曾經(jīng)很火的java技術(shù),現(xiàn)如今都以淘汰!
Spring、SpringMVC、Shiro面試題
springMVC入門
SpringMVC學(xué)習(xí)系列(1) 之 初識(shí)SpringMVC
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服