springMvc的核心

架構師springboot發表於2018-09-06

簡單的模擬場景:

1.使用者訪問的url,就比如一個人進公司,必須要先經過公司的大門才能進去,請求也是一樣,它必須先經過Dispatcher Servlet的前端控制器,

2.我們工作需要有工作地點吧(請求需要工作),可是不認路啊(請求需要在哪裡被分析),所以我們需要去找到地圖,然後在地圖上找到地點,在SpringMVC中,從Dispatcher Servlet先找到Handler Mapper,然後Handler Mapper找到工作點的老闆(HandlerAdapter)。

3.我們知道怎麼找到工作點了,而且路徑是從公司大門(Dispatcher Servlet前端控制器)開始的,我們按照地圖(HandlerMapper元件裡面的資訊)的指引找到了安排我們工作的HandlerAdapter。

4.老闆指使我們工作,我們身為員工(Handler,也就是請求所對應的事件),工作的內容就控制層(也就是MVC中的C)下請求url所對應的方法,工作完成之後,我們需要提交工作資料呈現給老闆看(返回ModelAndView物件給HandlerAdapter)

5.之後老闆把你的工作資料貼到公司大門上(將ModelAndView物件返回給DispatcherServlet),再經歷一番修飾後呈現給來往的客人看(使用者)

詳細的工作流程:

1、使用者傳送請求至前端控制器DispatcherServlet 2、DispatcherServlet收到請求呼叫HandlerMapping處理器對映器。 3、處理器對映器根據請求url找到具體的處理器,生成處理器物件及處理器攔截器(二者組成HandlerExecutionChain),並將其一併返回給DispatcherServlet。 4、DispatcherServlet通過HandlerAdapter處理器介面卡呼叫處理器 5、執行處理器(Controller,也叫後端控制器)。 6、Controller執行完成返回ModelAndView 7、HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet 8、DispatcherServlet將ModelAndView傳給ViewReslover檢視解析器 9、ViewReslover解析後返回具體View 10、DispatcherServlet對View進行渲染檢視(即將模型資料填充至檢視中)。 11、DispatcherServlet對使用者進行響應

相關文章