學(xué)習(xí)比較Struts2和Struts1:Struts2完勝
看到struts2.x,原以為是struts1x的改版,學(xué)習(xí)了struts2.x才知道,它是webWork的更新版本,核心就是webWork,webWork是另一個(gè)opensymphony開發(fā)組織,也挺優(yōu)秀的,感覺struts2.x比起struts1.x優(yōu)秀多了,只是struts1.x出現(xiàn)的比較早,所以用struts1.x開發(fā)的還比較多,一時(shí)難以接收。以下總結(jié)一些struts2和struts1的功能比對(duì),以供參考。
struts2和struts1之比對(duì):struts2的優(yōu)勢(shì)
從體系結(jié)構(gòu)來看:struts2大量使用攔截器來出來請(qǐng)求,從而允許與 業(yè)務(wù)邏輯控制器 與 servlet-api分離,避免了侵入性;而struts1.x 在action中明顯的侵入了servlet-api.
從線程安全分析:struts2.x是線程安全的,每一個(gè)對(duì)象產(chǎn)生一個(gè)實(shí)例,避免了線程安全問題;而struts1.x在action中屬于單線程。
性能方面:struts2.x測(cè)試可以脫離web容器,而struts1.x依賴servlet-api,測(cè)試需要依賴web容器。
請(qǐng)求參數(shù)封裝對(duì)比:struts2.x使用ModelDriven模式,這樣我們 直接 封裝model對(duì)象,無需要繼承任何struts2的基類,避免了侵入性。
標(biāo)簽的優(yōu)勢(shì):標(biāo)簽庫幾乎可以完全替代JSTL的標(biāo)簽庫,并且 struts2.x支持 強(qiáng)大的ognl表達(dá)式。
當(dāng)然,struts2和struts1相比,在 文件上傳,數(shù)據(jù)校驗(yàn) 等方面也 方便了好多。在這就不詳談了。
一個(gè)比較優(yōu)秀的 框架 可以 幫著 我們 更高效,穩(wěn)定的開發(fā) 合格的產(chǎn)品,不過我們也不要 依賴框架,我們只要理解了思想,設(shè)計(jì)模式,我們可以自己擴(kuò)展 功能,不然 就要 永遠(yuǎn)讓別人牽著走了!
【編輯推薦】