Struts2.x和Struts1.x的区别
Strust2.x不是新發布的新框架,而是另一個非常流行的框架WebWork基礎上發展起來的。Struts2并沒有繼承Struts1的特點,但是它吸收了Struts1和WebWork兩者的優勢,因此是一個優秀的框架
Struts2和Struts1有很多不同點:
1,Action類的編寫
? ? 在Struts1中,Action類一般是繼承基類“org.apache.struts.action.Action”.而在Struts2中,Action類可以實現一個Action接口,也可以實現其他接口,也可以繼承ActionSupport基類,甚至不需要實現任何接口,只編寫execute函數即可
2,Action的運行模式
? ? ?Struts1 中,Action是單態的,系統實例化一個對象來處理多個請求,為每個請求分配一個線程,在線程中運行execute函數。因此,在開發時需要需要特別小心,Action資源必須是線程安全的或者同步的。但是Strust2中,Action為每個請求產生一個實例,不會產生線程安全問題。
3,對Web容器的依賴
? ? Struts1中,Action的execute函數中,傳入Servlet API:HttpServletRequest和HttpServletResponse,使得測試依賴于Web容器,但是,Struts2中,可以不傳入HttpServletRequest和HttpServletResponse,但是可以訪問它們
HttpServletRequest request=ServletActionContext.getRequest(); HttpServletResponse response=ServletActionContext.getResponse();
4,對表單數據的封裝
? ? Struts1中,使用ActionForm來封裝表單數據,所有的ActionForm必須繼續org.apache.struts.action.ActionForm,有可能造成ActionForm類和VO類重復編碼。但是,Struts2中,直接在Action中編寫表單數據對應的屬性,就是把Struts1中ActionForm和Action合二為一了,可以不用編寫ActionForm,而這些屬性又可以通過Web頁面上的標簽訪問。
? ? ?
總結
以上是生活随笔為你收集整理的Struts2.x和Struts1.x的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Struts1.x的使用
- 下一篇: jdbc连接数据库失败,com.micr