Spring MVC執行流程

spring mvc 的工作流程

  1. 當用戶發送請求到前端控制器(DispatcherServlet), 改控制器會過濾出哪些請求可以訪問Servlet, 哪些不能訪問. 就是url-pattern的作用, 並且會加載springmvc.xml配置文件

  2. 前端控制器會找到處理器映射器(HandlerMapping), 通過HandlerMapping完成urlcontroller映射的組件, 簡單來說, 就是將在springmvc.xml中配置的或註解的url與對應的處理類找到並進行存儲, 用map<url,handler>這樣的方式來存儲

  3. HandlerMapping有了映射關係, 並且找到url對應的處理器, HandlerMapping就會將其處理器(Handler)返回, 在返回前, 會加載很多攔截器

  4. DispatcherServlet拿到Handler后,找到處理器適配器(HandlerAdapter), 通過HandlerAdapter來訪問處理器, 並執行處理器

  5. HandlerAdapter執行Handler

  6. Handler返回一個ModelAndView對象給HandlerAdapter

  7. 通過HandlerAdapterModelAndView對象返回給DispatcherServlet

  8. DispatcherServlet請求視圖解析器(ViewResolver)去進行視圖解析, 根據邏輯視圖名解析成真正的視圖(jsp), 其實就是將ModelAndView對象中存放試圖的名稱進行查找, 找到對應的頁面形成視圖對象

  9. 返回視圖對象到DispatcherServlet

  10. 視圖渲染, 就是將ModelAndView對象中的數據放到request作用域中, 用來讓頁面加載數據

  11. 通過第8步, 通過名稱找到了對應的頁面, 通過第10步, request中有了所需要的數據, 那麼就能夠進行視圖渲染了. 最後將其返回即可

注: 原文鏈接: https://blog.csdn.net/qinqigang/article/details/78540543

本文原文出自csdn作者CrazZy651314 , 我是在學習mvc知識時看到了, 感覺他的圖畫的很清楚, 我就自己寫了筆記(差不多就算抄了一次), 感覺他寫的挺好, 就分享到B站了 , 如有侵權  ,  請私信我 ,  我會第一時間刪除..


发表评论

%d 博主赞过: