struts1與struts2兩者有何異同?
1、都是MVC的WEB框架
2、struts1的老牌框架,應(yīng)用很廣泛,有很好的群眾基礎(chǔ),使用它開發(fā)風(fēng)險很小,成本更低!struts2雖然基于這個框架,但是應(yīng)用群眾并多,相對不成熟,未知的風(fēng)險和變化很多,開發(fā)人員相對不好招,使用它開發(fā)項目的風(fēng)險系數(shù)更大,用人成本更高!
3、struts2畢竟是站在前輩的基礎(chǔ)設(shè)計出來,它會改善和完善struts1中的一些缺陷,struts1中一些懸而未決問題在struts2得到了解決。
4、struts1的前端控制器是一個Servlet,名稱為ActionServlet,struts2的前端控制器是一個filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter。
5、struts1的action需要繼承Action類,struts2的action可以不繼承任何類;struts1對同一個路徑的所有請求共享一個Action實例,struts2對同一個路徑的每個請求分別使用一個獨立Action實例對象,所有對于struts2的Action不用考慮線程安全問題。
6、在struts1中使用formbean封裝請求參數(shù),在struts2中直接使用action的屬性來封裝請求參數(shù)。
7、struts1中的多個業(yè)務(wù)方法放在一個Action中時(即繼承DispatchAction時),要么都校驗,要么都不校驗;對于struts2,可以指定只對某個方法進行校驗,當(dāng)一個Action繼承了ActionSupport且在這個類中只編寫了validateXxx()方法,那么則只對Xxx()方法進行校驗。
(一個請求來了的執(zhí)行流程進行分析,struts2是自動支持分模塊開發(fā),并可以不同模塊設(shè)置不同的url前綴,這是通過package的namespace來實現(xiàn)的;struts2是支持多種類型的視圖;struts2的視圖地址可以是動態(tài)的,即視圖的名稱是支持變量方式的,舉例,論壇發(fā)帖失敗后回來還要傳遞boardid。視圖內(nèi)容顯示方面:它的標(biāo)簽用ognl,要el強大很多,在國際化方面支持分模塊管理,兩個模塊用到同樣的key,對應(yīng)不同的消息;)
與Struts1不同,Struts2對用戶的每一次請求都會創(chuàng)建一個Action,所以Struts2中的Action是線程安全的。struts1配置文件中的redirect視圖的url不能接受參數(shù),而struts2配置文件中的redirect視圖可以接受參數(shù)。
以上就是深圳達內(nèi)教育Java培訓(xùn)機構(gòu)小編介紹的“Java基礎(chǔ)學(xué)習(xí)線路:struts1與struts2的不同”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
視頻相關(guān)
全網(wǎng)最新全套Java視頻教程下載:http://www.bjpowernode.com/video.html
Java學(xué)習(xí)資料下載:http://www.bjpowernode.com/tutorial_java_se/
Struts2視頻教程:http://www.bjpowernode.com/v37/
Java基礎(chǔ)學(xué)習(xí)