前面壹篇文章我們已經分析過了SpringMVC的初始化流程( /p/b254a45612e8 ),現在我們繼續探究壹下SpringMVC的請求處理過程;
首先復習壹下,Spring基於Servlet實現的類的繼承結構,有了繼承結構圖,我們就能更好的分析其原理
如妳所知,HttpServlet類中有處理請求的doGet(), doPost(), service()等方法,如下圖所示
有了HttpServlet的成員,我們再來看看它具體的實現,下面是HttpServlet接口的部分源碼
關鍵部分都已經在源碼中給出說明
從源碼可知,FrameworkServlet對部分不同類型的請求進行了實現,那麽就來看看FrameworkServlet的源碼
從FrameworkServlet源碼可知, doGet(), doPost(),doDelete(), doPut()等方法都調用了該類的processRequest()方法;而這個processRequest()方法最重要的就是doService()方法, 而doService()方法是由其子類DispatcherServlet實現的,所以我們不得不去看看DispatcherServlet的源碼了;
至此,我們才到了DispatcherServlet處理請求的核心方法了, 至於doDispatch()方法,究竟是怎麽處理的呢?
我們繼續探究,先貼出doDispatch()的源碼
這裏借用松哥大佬的壹張流程圖,來詳細總結壹下doDispatch的流程, 原文鏈接: /u012702547/article/details/115176519?spm=1001.2014.3001.5501
未完待續