大家好,今天來為大家分享spring mvc原理流程圖的一些知識點,和springmvc的執行流程詳解的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問題,接下來我們就一起來看看吧!
天天用Spring MVC,有了解過它的底層源碼嗎
不了解的只能做代碼搬運工!
先學spring還是spring mvc
先學Spring,Spring是javaWeb框架里面的重中之重,基本所有框架都會和Spring進行整合。
ssh中的spring充當的是mvc中的model的職能,他也可以集成hibernate等,但它不提供hibernate的功能,僅為集成。
springmvc是mvc架構的整體實現,包括了mvc三項框架,有了它你就不需要再去集成struts和hibernate了,都是由它自己提供。
spring mvc的原理
SpringMVC屬于SpringFrameWork的后續產品,已經融合在SpringWebFlow里面。
Spring框架提供了構建Web應用程序的全功能MVC模塊。使用Spring可插入的MVC架構,可以選擇是使用內置的SpringWeb框架還是Struts這樣的Web框架。通過策略接口,Spring框架是高度可配置的,而且包含多種視圖技術。
SpringMVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。
spring mvc流程詳解
1、首先創建父容器(AnnotationConfigWebApplicationContext),通過自定義的getRootConfigClasses()拿到配置類,并注冊到父容器中。
2、通過父容器作為參數創建ContextLoaderListener監聽器。并添加到servletContext(Tomcatservlet容器)。
3、通過自定的getServletConfigClasses()方法拿到MVC的配置類創建子容器,并把配置類注冊到子容器中。
4、創建DispatcherServlet,并將DispatcherServlet添加到servletContext的Servlet容器中去。
5、設置dispatcherServlet相關屬性(啟動時加載,設置映射路徑)。
springmvc的工作流程是什么
spring工作的流程
流程如下:
1、用戶發起請求到前端控制器(DispatcherServlet),該控制器會過濾出哪些請求可以訪問Servlet、哪些不能訪問。就是url-pattern的作用,并且會加載springmvc.xml配置文件。
2、前端控制器會找到處理器映射器(HandlerMapping),通過HandlerMapping完成url到controller映射的組件,簡單來說,就是將在springmvc.xml中配置的或者注解的url與對應的處理類找到并進行存儲,用map<url,handler>這樣的方式來存儲。
3、HandlerMapping有了映射關系,并且找到url對應的處理器,HandlerMapping就會將其處理器(Handler)返回,在返回前,會加上很多攔截器。
4、DispatcherServlet拿到Handler后,找到HandlerAdapter(處理器適配器),通過它來訪問處理器,并執行處理器。
5、執行處理器
6、處理器會返回一個ModelAndView對象給HandlerAdapter
7、通過HandlerAdapter將ModelAndView對象返回給前端控制器(DispatcherServlet)
8、前端控制器請求視圖解析器(ViewResolver)去進行視圖解析,根據邏輯視圖名解析成真正的視圖(jsp),其實就是將ModelAndView對象中存放視圖的名稱進行查找,找到對應的頁面形成視圖對象
9、返回視圖對象到前端控制器。
10、視圖渲染,就是將ModelAndView對象中的數據放到request域中,用來讓頁面加載數據的。
11、通過第8步,通過名稱找到了對應的頁面,通過第10步,request域中有了所需要的數據,那么就能夠進行視圖渲染了。最后將其返回即可。
文章分享結束,spring mvc原理流程圖和springmvc的執行流程詳解的答案你都知道了嗎?歡迎再次光臨本站哦!