1. 程式人生 > >struts1和struts2之間的區別

struts1和struts2之間的區別

從action類上分析:
1.Struts1要求Action類繼承一個抽象基類。Struts1的一個普遍問題是使用抽象類程式設計而不是介面。 
2. Struts 2 Action類可以實現一個Action介面,也可實現其他介面,使可選和定製的服務成為可能。Struts2提供一個ActionSupport基類去實現常用的介面。Action介面不是必須的,任何有execute標識的POJO物件都可以用作Struts2的Action物件。
從Servlet 依賴分析: 
3. Struts1 Action 依賴於Servlet API ,因為當一個Action被呼叫時HttpServletRequest 和 HttpServletResponse 被傳遞給execute方法。 

4. Struts 2 Action不依賴於容器,允許Action脫離容器單獨被測試。如果需要,Struts2 Action仍然可以訪問初始的request和response。但是,其他的元素減少或者消除了直接訪問HttpServetRequest 和 HttpServletResponse的必要性。
從action執行緒模式分析: 
5. Struts1 Action是單例模式並且必須是執行緒安全的,因為僅有Action的一個例項來處理所有的請求。單例策略限制了Struts1 Action能作的事,並且要在開發時特別小心。Action資源必須是執行緒安全的或同步的。 
6. Struts2 Action物件為每一個請求產生一個例項,因此沒有執行緒安全問題。(實際上,servlet容器給每個請求產生許多可丟棄的物件,並且不會導致效能和垃圾回收問題)