- N +

spring mvc原理流程圖,springmvc的執(zhí)行流程詳解

大家好,今天來(lái)為大家分享spring mvc原理流程圖的一些知識(shí)點(diǎn),和springmvc的執(zhí)行流程詳解的問(wèn)題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問(wèn)題,接下來(lái)我們就一起來(lái)看看吧!

天天用Spring MVC,有了解過(guò)它的底層源碼嗎

不了解的只能做代碼搬運(yùn)工!

先學(xué)spring還是spring mvc

先學(xué)Spring,Spring是javaWeb框架里面的重中之重,基本所有框架都會(huì)和Spring進(jìn)行整合。

ssh中的spring充當(dāng)?shù)氖莔vc中的model的職能,他也可以集成hibernate等,但它不提供hibernate的功能,僅為集成。

springmvc是mvc架構(gòu)的整體實(shí)現(xiàn),包括了mvc三項(xiàng)框架,有了它你就不需要再去集成struts和hibernate了,都是由它自己提供。

spring mvc的原理

SpringMVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在SpringWebFlow里面。

Spring框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。使用Spring可插入的MVC架構(gòu),可以選擇是使用內(nèi)置的SpringWeb框架還是Struts這樣的Web框架。通過(guò)策略接口,Spring框架是高度可配置的,而且包含多種視圖技術(shù)。

SpringMVC分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更容易進(jìn)行定制。

spring mvc流程詳解

1、首先創(chuàng)建父容器(AnnotationConfigWebApplicationContext),通過(guò)自定義的getRootConfigClasses()拿到配置類,并注冊(cè)到父容器中。

2、通過(guò)父容器作為參數(shù)創(chuàng)建ContextLoaderListener監(jiān)聽(tīng)器。并添加到servletContext(Tomcatservlet容器)。

3、通過(guò)自定的getServletConfigClasses()方法拿到MVC的配置類創(chuàng)建子容器,并把配置類注冊(cè)到子容器中。

4、創(chuàng)建DispatcherServlet,并將DispatcherServlet添加到servletContext的Servlet容器中去。

5、設(shè)置dispatcherServlet相關(guān)屬性(啟動(dòng)時(shí)加載,設(shè)置映射路徑)。

springmvc的工作流程是什么

spring工作的流程

流程如下:

1、用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet),該控制器會(huì)過(guò)濾出哪些請(qǐng)求可以訪問(wèn)Servlet、哪些不能訪問(wèn)。就是url-pattern的作用,并且會(huì)加載springmvc.xml配置文件。

2、前端控制器會(huì)找到處理器映射器(HandlerMapping),通過(guò)HandlerMapping完成url到controller映射的組件,簡(jiǎn)單來(lái)說(shuō),就是將在springmvc.xml中配置的或者注解的url與對(duì)應(yīng)的處理類找到并進(jìn)行存儲(chǔ),用map<url,handler>這樣的方式來(lái)存儲(chǔ)。

3、HandlerMapping有了映射關(guān)系,并且找到url對(duì)應(yīng)的處理器,HandlerMapping就會(huì)將其處理器(Handler)返回,在返回前,會(huì)加上很多攔截器。

4、DispatcherServlet拿到Handler后,找到HandlerAdapter(處理器適配器),通過(guò)它來(lái)訪問(wèn)處理器,并執(zhí)行處理器。

5、執(zhí)行處理器

6、處理器會(huì)返回一個(gè)ModelAndView對(duì)象給HandlerAdapter

7、通過(guò)HandlerAdapter將ModelAndView對(duì)象返回給前端控制器(DispatcherServlet)

8、前端控制器請(qǐng)求視圖解析器(ViewResolver)去進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(jsp),其實(shí)就是將ModelAndView對(duì)象中存放視圖的名稱進(jìn)行查找,找到對(duì)應(yīng)的頁(yè)面形成視圖對(duì)象

9、返回視圖對(duì)象到前端控制器。

10、視圖渲染,就是將ModelAndView對(duì)象中的數(shù)據(jù)放到request域中,用來(lái)讓頁(yè)面加載數(shù)據(jù)的。

11、通過(guò)第8步,通過(guò)名稱找到了對(duì)應(yīng)的頁(yè)面,通過(guò)第10步,request域中有了所需要的數(shù)據(jù),那么就能夠進(jìn)行視圖渲染了。最后將其返回即可。

文章分享結(jié)束,spring mvc原理流程圖和springmvc的執(zhí)行流程詳解的答案你都知道了嗎?歡迎再次光臨本站哦!

返回列表
上一篇:
下一篇: