教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓(xùn)實(shí)戰(zhàn)教程之struts1與struts2的區(qū)別

更新時(shí)間:2016年01月14日11時(shí)36分 來源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

Java培訓(xùn)過程中精點(diǎn)、難點(diǎn)知識解析匯總    
       1.都是MVC的WEB框架,


  2 struts1的老牌框架,應(yīng)用很廣泛,有很好的群眾基礎(chǔ),使用它開發(fā)風(fēng)險(xiǎn)很小,成本更低!struts2雖然基于這個(gè)框架,但是應(yīng)用群眾并多,相對不成熟,未知的風(fēng)險(xiǎn)和變化很多,開發(fā)人員相對不好招,使用它開發(fā)項(xiàng)目的風(fēng)險(xiǎn)系數(shù)更大,用人成本更高!

  3.struts2畢竟是站在前輩的基礎(chǔ)設(shè)計(jì)出來,它會改善和完善struts1中的一些缺陷,struts1中一些懸而未決問題在struts2得到了解決。

  4.struts1的前端控制器是一個(gè)Servlet,名稱為ActionServlet,struts2的前端控制器是一個(gè)filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter。

  5.struts1的action需要繼承Action類,struts2的action可以不繼承任何類;struts1對同一個(gè)路徑的所有請求共享一個(gè)Action實(shí)例,struts2對同一個(gè)路徑的每個(gè)請求分別使用一個(gè)獨(dú)立Action實(shí)例對象,所有對于struts2的Action不用考慮線程安全問題。

  6.在struts1中使用formbean封裝請求參數(shù),在struts2中直接使用action的屬性來封裝請求參數(shù)。

  7.struts1中的多個(gè)業(yè)務(wù)方法放在一個(gè)Action中時(shí)(即繼承DispatchAction時(shí)),要么都校驗(yàn),要么都不校驗(yàn);對于struts2,可以指定只對某個(gè)方法進(jìn)行校驗(yàn),當(dāng)一個(gè)Action繼承了ActionSupport且在這個(gè)類中只編寫了validateXxx()方法,那么則只對Xxx()方法進(jìn)行校驗(yàn)。

  (一個(gè)請求來了的執(zhí)行流程進(jìn)行分析,struts2是自動(dòng)支持分模塊開發(fā),并可以不同模塊設(shè)置不同的url前綴,這是通過package的namespace來實(shí)現(xiàn)的;struts2是支持多種類型的視圖;struts2的視圖地址可以是動(dòng)態(tài)的,即視圖的名稱是支持變量方式的,舉例,論壇發(fā)帖失敗后回來還要傳遞boardid。視圖內(nèi)容顯示方面:它的標(biāo)簽用ognl,要el強(qiáng)大很多,在國際化方面支持分模塊管理,兩個(gè)模塊用到同樣的key,對應(yīng)不同的消息;)

  與Struts1不同,Struts2對用戶的每一次請求都會創(chuàng)建一個(gè)Action,所以Struts2中的Action是線程安全的。


  struts1配置文件中的redirect視圖的url不能接受參數(shù),而struts2配置文件中的redirect視圖可以接受參數(shù)。
Java培訓(xùn)學(xué)院始終認(rèn)為,你將會是最優(yōu)秀的存在,看好你,加油!??!

本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://www.xamj520.com/javaee 
0 分享到:
和我們在線交談!