SpringMVC 對比 Struts2
SpringMVC 介紹
Spring 爲展現層提供的基於 MVC 設計理念的優秀的Web 框架,是目前最主流的 MVC 框架之一。
- Spring3.0 後全面超越 Struts2,成爲最優秀的 MVC 框架。
- Spring MVC 通過一套 MVC 註解,讓 POJO 成爲處理請求的控制器,而無須實現任何接口。
- 支持 REST 風格的 URL 請求。
- 採用了鬆散耦合可插拔組件結構,比其他 MVC 框架更具擴展性和靈活性。
Struts2介紹
Struts2是一個基於MVC設計模式的Web應用框架。
它本質上相當於一個servlet,在MVC設計模式中,Struts2作爲控制器(Controller)來建立模型與視圖的數據交互。
Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開。
相同點:
二者都是基於mvc的web層的框架,都是負責接收用戶瀏覽器提交的請求參數,通過某些校驗操作調用業務層,而後獲取到業務層返回的數據,將數據通過某種方式在前臺展示。
不同點:
- Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter。
- Spring MVC 會稍微比 Struts2 快些. Spring MVC 是基 於方法設計, 而 Sturts2 是基於類, 每次發一次請求都會實 例一個 Action。
- Spring MVC 使用更加簡潔, 開發效率Spring MVC確實 比 struts2 高: 支持 JSR303, 處理 ajax的請求更方便。
- Struts2 的 OGNL 表達式使頁面的開發效率相比 Spring MVC 更高些。
- Struts2是類級別的攔截,一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文。