日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。