天天看點

Struts2和Struts1的差別?

常見的web表現層架構:Struts1、Struts2、WebWork、SpringMVC等。

相同點:

都是基于MVC的Web架構。

不同點:

1、在Action實作方面

Struts1的Action需要繼承Action類。

Struts2的Action可以不繼承任何類,也可以是一個POJO。

2、線程模型方面

Struts1的Action是單執行個體的,一個Action的執行個體處理所有的請求,線程不安全。

Struts2的Action是一個請求對應一個執行個體(即每次請求時都新new出一個對象),故線程安全。

3、Servlet依賴方面

Struts1的Action依賴于Servlet API。

Struts2的Action不依賴于Servlet API。

4、封裝請求參數

Struts1中使用formbean封裝請求參數。

Struts2中直接使用Action的屬性來封裝請求參數

5、表達式方面

Struts1中整合的是EL表達式。

Struts2整合了OGNL(Object Graph Navigate Language)。

6、Struts2實際是基于WebWork開發出來的,整合了Struts1的有點(基本上等效于這個表達式:Struts2=Struts1架構的優點+WebWork架構)。

以上屬于個人總結的幾個方面,供各位參考。謝謝!