struts2是從struts1發展而來,但實際上struts2與struts1在框架的設計思想上面還是有很大的區別,stuts1有個核心控制器,但是只提供了乙個介面,也就是execute,還要配置actionform之類的,很麻煩,所以依賴性比較強;而stuts2是針對***開發的,也就是所謂的aop思想,可以配置多個action,用起來比較方便,但是因為請求之前的***有一些注入的操作,速度相對stuts1來說慢一點。
servlet 依賴:
struts1 嚴重依賴於servlet
struts 2 不依賴於容器
因此對struts1的action進行測試的時候是很困難的,需要借助與其他的測試工具,struts2的action可以象測試其他的一些model層的service類一樣進行測試
控制器:
struts1
的前端控制器是乙個
servlet
,名稱為
actionservlet
struts2
的前端控制器是乙個
filter
,名稱為filterdispatcher
,在struts2.1
中叫strutsprepareandexecutefilter。
請求引數
在struts1
中使用formbean
封裝請求引數 在
struts2
中直接使用
action
的屬性來封裝請求引數
struts1的執行原理
1)客戶端向容器(如tomcat)提交乙個請求
2)核心控制器actionservlet解析struts-config.xml
3)找到相對應的action
4)action處理完業務,跳到相應的jsp頁面
5)jsp響應給客戶端
struts2的執行原理
1、tomcat 啟動的時候會載入 web.xml 、核心控制器filterdispatcher 會載入並解析 struts.xml
2、客戶端會傳送乙個請求到 action 、filterdispatcher 會根據字尾名進行攔截
3、filterdispatcher根據struts.xml 的配置檔案資訊 找到 某個action 對應的某個類裡的指定方法
4、執行相關的業務邏輯最後返回 乙個string
5、裡配置name的屬性值與返回的string進行匹配,跳轉到指定的jsp 頁面
struts1的action是單例項的,
乙個action的例項處理所有的請求
struts2的action是乙個請求對應乙個例項
每次請求時都新new出乙個物件
struts1和struts2的區別
1 struts1必須要繼承乙個抽象基類 dispatchaction struts2 只要是乙個有execute方法的pojo就可以,不用一定繼承 但是,struts2一般繼承乙個com.opensymphany.xwork2.actionsupport來實現一些常用方法。3 表示式 struts...
Struts1和Struts2的區別
1 從action類上分析 struts1要求action類繼承乙個抽象基類。struts1的乙個普遍問題是使用抽象類程式設計而不是介面 struts2 action提供乙個actionsupport基類去實現常用的介面。action介面不是必須的,任何有execute標識的pojo物件都可以用作s...
學習比較Struts2和Struts1的區別
看到struts2.x,原以為是struts1x的改版,學習了struts2.x才知道,它是webwork的更新版本,核心就是webwork,webwork是另乙個opensymphony開發組織,也挺優秀的,感覺struts2.x比起struts1.x優秀多了,只是struts1.x出現的比較早,...