spring mvc 是ssm框架中的一部分,springmvc是基于JAVA的實(shí)現(xiàn)MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)的web框架。通過注解的方式來web功能,簡(jiǎn)化開發(fā)。
? ?MVC體系結(jié)構(gòu)
三層架構(gòu)
我們?cè)陂_發(fā)過程中主要是遵循兩種形式,一種C/S架構(gòu),一種是B/S架構(gòu)。在JAVAEE開發(fā)中,幾乎全都是B/S架構(gòu)的開發(fā)。系統(tǒng)標(biāo)準(zhǔn)的三層架構(gòu)在B/S中廣泛運(yùn)用。
? ? 表現(xiàn)層:
????????也就是我們通常所說的web層,他負(fù)責(zé)接收客戶端發(fā)送過來的請(qǐng)求和將查詢出來的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā),向客戶端響應(yīng)結(jié)果
? ? ? ? 表現(xiàn)層包括展示層和控制層:控制層負(fù)責(zé)接收數(shù)據(jù),展示層負(fù)責(zé)結(jié)果的展示。表現(xiàn)層依賴于業(yè)務(wù)層,接收到客戶端請(qǐng)求一般會(huì)調(diào)用業(yè)務(wù)層進(jìn)行業(yè)務(wù)處理,并將處理好的結(jié)果反饋給客戶端,而我們所說的mvc模型是屬于表現(xiàn)層的。
? ? 業(yè)務(wù)層:
? ? ? ? service層,它負(fù)責(zé)業(yè)務(wù)邏輯處理
? ? 持久層:
? ? ? ? dao層負(fù)責(zé)數(shù)據(jù)持久化
MVC設(shè)計(jì)模式
mvc全名為model view controller。是模型-視圖-控制器的縮寫。一種用設(shè)計(jì)創(chuàng)建web應(yīng)用程序表現(xiàn)層的模式
model: 包含了業(yè)務(wù)模型和數(shù)據(jù)模型,數(shù)據(jù)模型用于封裝數(shù)據(jù)。業(yè)務(wù)模型用于處理業(yè)務(wù)
view:通常指的是jsp或者h(yuǎn)tml。作用是用于數(shù)據(jù)展示
controller:是應(yīng)用程序中處理用戶交互的部分,作用一般就是處理程序邏輯。
mvc執(zhí)行流程

流程執(zhí)行:
第一步:用戶發(fā)送請(qǐng)求到前端控制器DispatcherServlet
第二步:DispatcherServlet收到請(qǐng)求調(diào)用handleMapping處理映射器
第三步:處理器映射器根據(jù)請(qǐng)求Url找到具體的handler(后端控制器),生成處理器對(duì)象及處理器攔截器一并返回DispatcherServlet
第四步:DispatcherServlet調(diào)用HandlerAdapter處理器適配器去調(diào)用Handler
第五步:處理器適配器執(zhí)行Handler
第六步:Handler執(zhí)行完成給處理器適配器返回ModelAndView
第七步:處理器適配器向前端控制器返回 ModelAndView,ModelAndView 是SpringMVC 框架的一個(gè)底層對(duì) 象,包括 Model 和 View
第八步:前端控制器請(qǐng)求視圖解析器去進(jìn)行視圖解析,根據(jù)邏輯視圖名來解析真正的視圖。
第九步:視圖解析器向前端控制器返回View
第十步:前端控制器進(jìn)行視圖渲染,就是將模型數(shù)據(jù)(在 ModelAndView 對(duì)象中)填充到 request 域
第十一步:前端控制器向用戶響應(yīng)結(jié)果
Spring MVC九大組件????
1.HandlerMapping(映射處理器)
HandlerMapping是用來查找Handler的,就是處理器。具體的表現(xiàn)形式可以是類,也可以是方法
2.HandlerAdapter(處理器適配器)
讓固定的servlet處理方法調(diào)用hanndler來進(jìn)行處理
3.viewResolver(視圖解析器)
將string類型的視圖名和locale解析為View類型的視圖,只有一個(gè)resolveViewName()方法。
4.requestToViewNameTranslator
從請(qǐng)求中獲取viewname
5.localeResolver
國際化解析器
6.ThemeResolver
主題解析器
7.MultipartResolver
請(qǐng)求上傳
8.FalshMapManager
重定向時(shí)參數(shù)傳遞
9.handleExceptionReslover
處理異常解析器