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