Struts 1與 Struts2 的區別

struts1 與struts2 的區別。

    1.都是MVC 的WEB 框架,

    2 struts1 的老牌框架,應用很廣泛,有很好的羣衆基礎,使用它開發風險很小,成本更低!struts2雖然基於這個框架,但是 應用羣衆並多,相對不成熟,未知的風險和變化很多,開發人員相對不好招,使用它開發項目的風險係數更大,用人成本更高!

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

   4.struts1 的前端控制器是一個Servlet,名稱爲ActionServlet,struts2 的前端控制器是一個filter,在struts2.0 中叫FilterDispatcherstruts2.1 StrutsPrepareAndExecuteFilter

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

   6.struts1 中使用formbean 封裝請求參數struts2 中直接使用action 的屬性來封裝請求參數。

   7.struts1 中的多個業務方法放在一個Action 中時即繼承DispatchAction ),要麼都校驗要麼都不校驗對於struts2可以指定只對某個方法進行校驗當一個Action 繼承了ActionSupport且在這個類中只編寫了validateXxx()方法那麼則只對Xxx()方法進行校驗。(一個請求來了的執行流程進行分析,struts2 是自動支持分模塊開發,並可以不同模塊設置不同的url 前綴,這是通過package 的namespace 來實現的;struts2 是支持多種類型的視圖;struts2的視圖地址可以是動態的,即視圖的名稱是支持變量方式的,舉例,論壇發帖失敗後回來還要傳遞boardid。視圖內容顯示方面:它的標籤用ognl,要el 強大很多,在國際化方面支持分模塊管理,兩個模塊用到同樣的key,對應不同的消息;)與Struts1 不同,Struts2 對用戶的每一次請求都會創建一個Action,所以Struts2 中的Action 是線程安全的。給我印象最深刻的是:struts 配置文件中的redirect 視圖的url 不能接受參數,而struts2 配置文件中的redirect 視圖可以接受參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章