springMVC從接受請求到完成響應的過程
阿新 • • 發佈:2019-01-06
sprinmvc大致的工作原理如下:
**簡要說明:**
1.使用者發起請求到前端控制器。
2.前端控制器通過處理器對映器查詢hander。
3.處理器對映器返回執行鏈。
a)hander物件
b)攔截器(集合)
4.前端控制器通處理器介面卡包裝,執行hander物件。思考:為什麼要通過介面卡來執行?
5.通過模型hander處理業務邏輯。
6.處理業務完成後,返回ModeAndView物件,其中有檢視名稱,模型資料。
7.將檢視名稱和模型資料返回到前端控制器。
8.前端控制器通過檢視直譯器查詢檢視物件。
9.檢視直譯器返回真正的檢視。
10.前端控制器通過返回的檢視和資料進行渲染。
11.返回渲染完成的檢視。
12.將最終的檢視返回給使用者,產生響應。
下面詳細分析:
1)當請求到達springmvc前段控制器的時候,會到達DispatcherServlet的doService()方法,如下:
2)接著會呼叫doDispatcher()方法,如下:
3)接著會呼叫getHandler(processedRequest)獲取當前的處理器
4)看getHandler(processedRequest)方法,會返回當前請求的處理器鏈。當前處理器聯封裝了負責請求的處理器及其方法;
5)根據當年請求的處理器獲取處理器介面卡,通過呼叫getHandlerAdapter()獲取;
6)接下來呼叫handler()方法處理請求
7)接著進入handler()方法瞧一瞧,來到了類的AbstractHandlerMethodAdapter的handleInternal()方法
8)
9)最後執行呼叫
10)呼叫結束會返回modelAndView物件
整個過程大概就是這樣子。