一、回顧 MVC 模式
MVC 是模型(Model),視圖(View),控制器(Controller)的簡(jiǎn)寫,是一種軟件設(shè)計(jì)的代碼規(guī)范,將業(yè)務(wù)邏輯、數(shù)據(jù)以及顯示完全分離開來。MVC 并不是一種設(shè)計(jì)模式,MVC 是一種結(jié)構(gòu)模式。 并且不同的 MVC 之間也是存在著差異的。
-
Model(模型):
數(shù)據(jù)模型,提供要展示的數(shù)據(jù),因此包含數(shù)據(jù)和行為,可以認(rèn)為是領(lǐng)域模型或JavaBean組件(包含數(shù)據(jù)和行為),不過現(xiàn)在一般都分離開來:Value Object(數(shù)據(jù)Dao) 和 服務(wù)層(行為Service)。也就是模型提供了模型數(shù)據(jù)查詢和模型數(shù)據(jù)的狀態(tài)更新等功能,包括數(shù)據(jù)和業(yè)務(wù)。
-
View(視圖):
負(fù)責(zé)進(jìn)行模型的展示,一般就是我們見到的用戶界面,客戶想看到的東西。
-
Controller(控制器):
接收用戶請(qǐng)求,委托給模型進(jìn)行處理(狀態(tài)改變),處理完畢后把返回的模型數(shù)據(jù)返回給視圖,由視圖負(fù)責(zé)展示。也就是說控制器做了個(gè)調(diào)度員的工作。
-
職責(zé)分析:
-
Controller:控制器
-
取得表單數(shù)據(jù)
-
調(diào)用業(yè)務(wù)邏輯
-
轉(zhuǎn)向指定的頁(yè)面
-
-
Model:模型
-
業(yè)務(wù)邏輯
-
保存數(shù)據(jù)的狀態(tài)
-
-
View:視圖
- 顯示頁(yè)面
-
- MVC 模式的主要作用: 降低視圖與業(yè)務(wù)邏輯之間的雙向耦合
最典型的 MVC 就是 JSP + servlet + javabean 的模式。
文章來源地址http://www.zghlxwxcb.cn/news/detail-636868.html
二、初識(shí) Spring MVC
??? ???Spring MVC官方文檔
-
什么是 Spring MVC
-
??? ???Spring MVC就是一個(gè) Spring 內(nèi)置的 MVC 框架,是基于Java實(shí)現(xiàn)MVC的輕量級(jí)Web框架。
??? ???MVC框架,它解決WEB開發(fā)中常見的問題(參數(shù)接收、文件上傳、表單驗(yàn)證、國(guó)際化等等),而且使用簡(jiǎn)單,與Spring無縫集成。支持 RESTful風(fēng)格的URL請(qǐng)求。
??? ???采用了松散耦合可插拔組件結(jié)構(gòu),比其他 MVC 框架更具擴(kuò)展性和靈活性。
-
-
MVC框架要做哪些事情
1、將url映射到j(luò)ava類或java類的方法 .
2、封裝用戶提交的數(shù)據(jù) .
3、處理請(qǐng)求–調(diào)用相關(guān)的業(yè)務(wù)處理–封裝響應(yīng)數(shù)據(jù) .
4、將響應(yīng)的數(shù)據(jù)進(jìn)行渲染 . jsp / html 等表示層數(shù)據(jù) .
-
常見的服務(wù)器端MVC框架有:
-
Struts、Spring MVC、ASP.NET MVC、Zend Framework、JSF;常見前端MVC框架:vue、angularjs、react、backbone;由MVC演化出了另外一些模式如:MVP、MVVM 等等…
-
-
Spring MVC 的作用
-
MVC模式(Model-View-Controller):解決頁(yè)面代碼和后臺(tái)代碼的分離。
-
-
Spring MVC 的底層
-
??? ???在沒有使用 Spring MVC 之前我們都是使用 Servlet 在做 Web 開發(fā)。但是使用 Servlet 開發(fā)在接收請(qǐng)求參數(shù),數(shù)據(jù)共享,頁(yè)面跳轉(zhuǎn)等操作相對(duì)比較復(fù)雜。Servlet 是 java 進(jìn)行 web 開發(fā)的標(biāo)準(zhǔn),既然 Spring MVC 是對(duì) Servlet 的封裝,那么很顯然 Spring MVC 底層就是Servlet,Spring MVC 就是對(duì) Servlet 進(jìn)行深層次的封裝
-
2.1 Spring MVC 核心組件
??? ???Spring MVC 有著多個(gè)組件,這些核心組件共同協(xié)作,使得Spring MVC能夠處理請(qǐng)求、調(diào)度處理器、渲染視圖,并提供靈活的攔截器和數(shù)據(jù)綁定機(jī)制。通過使用這些組件,我們可以方便地構(gòu)建和管理Web應(yīng)用程序的請(qǐng)求處理流程。
2.1.1 前端控制器(DispatcherServlet)
-
??? ???前端控制器是Spring MVC框架的核心,它充當(dāng)了所有請(qǐng)求的中央處理器。在Spring MVC中,DispatcherServlet 充當(dāng)了前端控制器的角色。
??? ??? 前端控制器負(fù)責(zé)接收用戶的提交的所有請(qǐng)求,如傳統(tǒng)的jsp文件,調(diào)用其他的控制器 Controller 對(duì)象,并把請(qǐng)求處理的結(jié)果顯示給用戶。并且可以接收所有的 HTTP 請(qǐng)求,并將請(qǐng)求分發(fā)給合適的處理器進(jìn)行處理。-
DispatcherServlet :該類本身就是一個(gè) Servlet,因?yàn)槠淅^承了 Servlet
-
2.1.2 處理器映射器(HandlerMapping)
-
執(zhí)行后端控制器(Handler),拿到后端控制器返回的結(jié)果 ModelAndView 后將結(jié)果返回給前端控制器 DispatcherServlet。
2.1.3 處理器適配器(HandlerAdapter)
-
處理器適配器,執(zhí)行后端控制器(Handler),拿到后端控制器返回的結(jié)果ModelAndView后將結(jié)果返回給前端控制器 DispatcherServlet。
2.1.3 后端控制器(處理器:Handler)
-
后端控制器:主要負(fù)責(zé)處理前端請(qǐng)求,完成業(yè)務(wù)邏輯,生成ModelAndView對(duì)象返回給 HandlerAdapter。
2.1.4 視圖解析器(ViewResolver)
-
視圖解析器:主要負(fù)責(zé)將從DispatcherServlet中拿到的ModelAndView對(duì)象進(jìn)行解析,生成View對(duì)象返回給DispatcherServlet。文章來源:http://www.zghlxwxcb.cn/news/detail-636868.html
到了這里,關(guān)于一、初識(shí) Spring MVC的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!