1) 兩個框架都是MVC的WEB框架,
2) struts1是老牌框架,應用很廣泛,有很好的群眾基礎,使用它開發風險很小,成本低,Struts2核心設計思想主要源自Webwork,實現更優雅,更容易擴展
3) Struts2修改和完善了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封裝請求參數,在struts2中直接使用action的屬性來封裝請求參數。
7) struts1中的多個業務方法放在一個Action中時(即繼承DispatchAction時),要么都校驗,要么都不校驗;對於struts2,可以指定只對某個方法進行校驗,當一個Action繼承了ActionSupport且在這個類中只編寫了validateXxx()方法,那么則只對Xxx()方法進行校驗。
8) 與Struts1不同,Struts2對用戶的每一次請求都會創建一個Action,所以Struts2中的Action是線程安全的。
9) Struts2的Action比較容易進行單元測試,Struts1則需要一些特殊的支持才可以進行測試Struts 1有哪些核心組件?Struts 2結構體系的運行原理(重點)
