DispatcherServlet簡介
DispatcherServlet是springMVC的核心類,這個類里邊包含了多個成員變量节腐,這些變量在request的整個處理過程中發(fā)揮著不同的重要作用倡怎,學習這個類對理解springMVC處理流程至關重要明刷。
官方簡介:
1)用于HTTP request的handler和controllers的中央調度程序廊酣;
2)分發(fā)注冊的handler來處理web請求食侮;
3)提供mapping映射和exception異常處理工具荷并;
點擊查看詳細文檔介紹
我們可以先通過分析這個類的數(shù)據(jù)結構來大致了解下這個類究竟包含了哪些對象以及每個對象分別所起到的作用合砂,下面我列出這個類的主要成員變量和相應的方法以及它們在springMVC的處理過程中發(fā)揮的主要作用:
圖中列出了9個類成員變量和相應的init方法,它們屬于spring的核心組件。DispatcherServlet通過調用void initStrategies(ApplicationContext context) 方法從容器中獲取對象實例來完成初始化源织。
除了這幾個組件和方法之外翩伪,DispatcherServlet還有一些其它核心方法:
doService方法:在實際執(zhí)行處理請求之前做一些準備工作,然后調用doDispatch方法;
doDispatch方法:整個類的核心方法谈息,實際執(zhí)行處理請求過程的地方缘屹,我們可以通過分析這個方法的調用過程來弄清楚整個請求的處理過程。
其它一些方法:執(zhí)行處理過程操作(被doDispatch直接或者間接調用)侠仇、清理等其它操作轻姿。
結束語:
1) springMVC處理request通過9個核心組件來完成;
2) springMVC擁有一些用來初始化組件的init方法逻炊,它們統(tǒng)一在void initStrategies(ApplicationContext context)方法中調用互亮;
3) springMVC的核心方法為void doDispatch(HttpServletRequest request, HttpServletResponse response),這個方法包含了整個request請求的調用過程;
下節(jié)預覽:雖然可以通過分析doDispatch的調用棧使我們快速了解MVC的處理過程余素,但是需要讀者對各個組件的概念和功能有一個大概的了解豹休;我們在學習doDispatch的調用棧之前先學習這9個組件。下一節(jié)我們先來學習LocaleResolver組件因為這個組件不涉及到mvc的處理流程控制桨吊,所以比較簡單威根。它是用來進行區(qū)域語言設置(國際化)。