Struts1和struts2的區別

2021-07-16 16:04:59 字數 1369 閱讀 4430

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出現的比較早,...