當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
三层架构 || SpringMVC 和 Struts2 的优略分析
生活随笔
收集整理的這篇文章主要介紹了
三层架构 || SpringMVC 和 Struts2 的优略分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們的開發架構一般都是基于兩種形式,一種是 C/S 架構,也就是客戶端/服務器,另一種是 B/S 架構,也就是瀏覽器服務器。在 JavaEE 開發中,幾乎全都是基于 B/S 架構的開發。那么在 B/S 架構中,系統標準的三層架構 包括:表現層、業務層、持久層。
SpringMVC 是什么 ?
SpringMVC 是一種基于 Java 的實現 MVC 設計模型的請求驅動類型的輕量級 Web 框架,屬于 Spring FrameWork 的后續產品,已經融合在 Spring Web Flow 里面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用 Spring 進行 WEB 開發時,可以選擇使用 Spring 的 Spring MVC 框架或集成其他 MVC 開發框架,如 Struts1(現在一般不用),Struts2 等。 SpringMVC 已經成為目前最主流的 MVC 框架之一,并且隨著 Spring3.0 的發布,全面超越Struts2,成為最優秀的 MVC 框架。 它通過一套注解,讓一個簡單的 Java 類成為處理請求的控制器,而無須實現任何接口。同時它還支持RESTful 編程風格的請求SpringMVC 在三層架構的位置
SpringMVC 的優勢
1、清晰的角色劃分:
前端控制器(DispatcherServlet)
請求到處理器映射(HandlerMapping)
處理器適配器(HandlerAdapter)
視圖解析器(ViewResolver)
處理器或頁面控制器(Controller)
驗證器( Validator)
命令對象(Command 請求參數綁定到的對象就叫命令對象)
表單對象(Form Object 提供給表單展示和提交到的對象就叫表單對象)
2、分工明確,而且擴展點相當靈活,可以很容易擴展,雖然幾乎不需要。 3、由于命令對象就是一個 POJO,無需繼承框架特定 API,可以使用命令對象直接作為業務對象。 4、和 Spring 其他框架無縫集成,是其它 Web 框架所不具備的。 5、可適配,通過 HandlerAdapter 可以支持任意的類作為處理器。 6、可定制性,HandlerMapping、ViewResolver 等能夠非常簡單的定制。 7、功能強大的數據驗證、格式化、綁定機制。 8、利用 Spring 提供的 Mock 對象能夠非常簡單的進行 Web 層單元測試。 9、本地化、主題的解析的支持,使我們更容易進行國際化和主題的切換。 10、強大的 JSP 標簽庫,使 JSP 編寫更容易。SpringMVC 和 Struts2 的優略分析
共同點:
它們都是表現層框架,都是基于 MVC 模型編寫的。 它們的底層都離不開原始 ServletAPI。 它們處理請求的機制都是一個核心控制器。區別:
Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter Spring MVC 是基于方法設計的,而 Struts2 是基于類,Struts2 每次執行都會創建一個動作類。所以 Spring MVC 會稍微比Struts2 快些。 Spring MVC 使用更加簡潔,同時還支持 JSR303, 處理 ajax 的請求更方便 (JSR303 是一套 JavaBean 參數校驗的標準,它定義了很多常用的校驗注解,我們可以直接將這些注解加在我們 JavaBean 的屬性上面,就可以在需要校驗的時候進行校驗了。) Struts2 的 OGNL 表達式使頁面的開發效率相比 Spring MVC 更高些,但執行效率并沒有比 JSTL 提升,尤其是 struts2 的表單標簽,遠沒有 html 執行效率高。?
總結
以上是生活随笔為你收集整理的三层架构 || SpringMVC 和 Struts2 的优略分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RegExp:正则表达式对象 || Gl
- 下一篇: MyBatis 框架概述