struts1與struts2的對比

struts1與struts2的對比

ID:40567875

大?。?2.16 KB

頁數(shù):4頁

時間:2019-08-04

struts1與struts2的對比_第1頁
struts1與struts2的對比_第2頁
struts1與struts2的對比_第3頁
struts1與struts2的對比_第4頁
資源描述:

《struts1與struts2的對比》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、Struts1和Struts2的比較翻譯:zhiyong.tong出自:ApacheStruts2Documentation特性Struts1Struts2Action類Struts1要求Action類要擴展自一個抽象基類。Struts1的一個共有的問題是面向抽象類編程而不是面向接口編程。Struts2的Action類實現(xiàn)了一個Action接口,連同其他接口一起麳實現(xiàn)可選擇和自定義的服務(wù)。Struts2提供一個名叫ActionSupport的基類麳實現(xiàn)一般使用的接口。雖然,Action接口不是必須的。任何使用execute方法的POJO對象可以被當(dāng)作Struts2的Action對象麳使用。

2、綫程模型Struts1Action類是單例類,因爲(wèi)只有一個示例麳控制所有的請求。單例類策略造成了一定的限制幷且給開發(fā)帶來了額外的煩惱。Action資源必須是綫程安全或者同步的。Struts2Action對象爲(wèi)每一個請求都實例化對象,所以沒有綫程安全的問題。(實踐中,servlet容器産生許多丟棄的對象對于每一個請求,多于一個的對象并不影響垃圾收集)Servlet依賴Struts1的Action類依賴于servletAPI以爲(wèi)HttpServletRequest和HttpServletResponse作爲(wèi)參數(shù)傳給execute方法當(dāng)Action被調(diào)用時。Struts2的Action不和容器有

3、關(guān)。Servlet上下文被表現(xiàn)爲(wèi)簡單的Maps,允許Action被獨立的測試。Struts2的Action可以訪問最初的請求和相應(yīng),如果需要的話。然而,其他的架構(gòu)元素減少或者排除直接訪問HttpServletRequest或者HttpServletResponse的需要。易測性測試Struts1的主要障礙是execute方法暴露了ServletAPI。第三方的擴展,Struts測試用例,提供Struts1的集合對象。Struts2的Action可以通過實例化Action麳測試,設(shè)置屬性,然後調(diào)用方法。依賴注入的支持也是測試變得更簡單。接受輸入Struts1使用ActionForm對象麳捕獲

4、輸入。象Action一樣,所有的ActionForm必須擴展基類。因爲(wèi)其他的JavaBean不能作爲(wèi)ActionForm使用,開發(fā)者經(jīng)常創(chuàng)建多余的類麳捕獲輸入。DynaBeans可以被用來作爲(wèi)替代ActionForm的類麳創(chuàng)建。但是開發(fā)者可以重新描述已經(jīng)存在的Struts2Action屬性作爲(wèi)輸入屬性,排除第二個輸入對象的需要。輸入屬性可能有豐富的對象類型這些類型有他們自己的屬性。Action的屬性可以通過標(biāo)簽庫麳訪問。Struts2也支持ActionForm形式。豐富的對象類型,包含業(yè)務(wù)或者域?qū)ο?,可以被?dāng)作輸入或者輸出對象麳使用。糢型驅(qū)動特性簡JavaBean?;瘶?biāo)簽對POJO輸入對象

5、的引用。表達式語言Struts1整和JSTL,所以它使用JSTL的表達式語言。表達式語言有基本的圖形對象移動,但是相對很弱的集合和被索引的屬性支持。Struts2使用JSTL,但是框架也支持更強大和更靈活的表達式,叫做“對象圖形符號語言”(OGNL)。將值綁定要視圖上Struts1使用標(biāo)準(zhǔn)JSP機製來綁定對象到頁面上下文。Struts2使用“ValueStack”技術(shù)爲(wèi)了標(biāo)簽庫可以不用鏈接你的視圖到對象的表現(xiàn)類型麳訪問值。ValueStack策略允許重用視圖。類型轉(zhuǎn)換Struts1的ActionForm屬性經(jīng)常都是String的。Struts1使用Commons-Beanutils麳類型轉(zhuǎn)

6、換。轉(zhuǎn)換每一個類,幷不是爲(wèi)每一個實例配置。Struts2使用OGNL麳類型轉(zhuǎn)換??蚣馨D(zhuǎn)換器麳爲(wèi)基本的和共同的對象類型和原始類型。驗證Struts1支持手動驗證憑借ActionForm的validate方法,或者通過擴展的公用驗證器。類可以有不同的驗證上下文麳未相同的類,但是不能不能包括驗證子對象。Struts2支持手動驗證憑藉validate方法和XWork驗證框架。Xwork驗證框架支持一連串的驗證子屬性使用的驗證爲(wèi)了屬性類的類型和嚴(yán)正上下文而定義。Action執(zhí)行的控制Struts1支持獨立的請求處理器對于每一個模型,但是所有在模型中的Action必須共享同一個生命周期。Strut

7、s2支持在每一個Action基礎(chǔ)上憑借攔截棧創(chuàng)建不同的生命周期。自定義??梢员粍?chuàng)建幷且使用不同的所需的Action。Struts從1.1都升成2了,要記錄一下,學(xué)習(xí)起來會方便一些:1.Struts2與Struts1似乎沒什么血緣關(guān)系了,承自于WebWork,直害WebWork不再推出新版本了,原先的WebWork使用者只需順其然,即是水道渠成;相反Struts1的開發(fā)經(jīng)驗對于Struts2卻沒有太大的幫助。2.Strut

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。