<meta charset="utf-8">
spring工作的流程
1 用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet),該控制器會(huì)過濾出哪些請(qǐng)求可以訪問Servlet刻两、哪些不能訪問。就是url-pattern的作用赖草,并且會(huì)加載springmvc.xml配置文件。
2 前端控制器會(huì)找到處理器映射器(HandlerMapping)剪个,通過HandlerMapping完成url到controller映射的組件秧骑,簡(jiǎn)單來說,就是將在springmvc.xml中配置的或者注解的url與對(duì)應(yīng)的處理類找到并進(jìn)行存儲(chǔ),用map<url,handler>這樣的方式來存儲(chǔ)乎折。
3 HandlerMapping有了映射關(guān)系绒疗,并且找到url對(duì)應(yīng)的處理器,HandlerMapping就會(huì)將其處理器(Handler)返回骂澄,在返回前吓蘑,會(huì)加上很多攔截器。
4 DispatcherServlet拿到Handler后坟冲,找到HandlerAdapter(處理器適配器)磨镶,通過它來訪問處理器,并執(zhí)行處理器健提。
5 執(zhí)行處理器
6 處理器會(huì)返回一個(gè)ModelAndView對(duì)象給HandlerAdapter
7 通過HandlerAdapter將ModelAndView對(duì)象返回給前端控制器(DispatcherServlet)
8 前端控制器請(qǐng)求視圖解析器(ViewResolver)去進(jìn)行視圖解析琳猫,根據(jù)邏輯視圖名解析成真正的視圖(jsp),其實(shí)就是將ModelAndView對(duì)象中存放視圖的名稱進(jìn)行查找私痹,找到對(duì)應(yīng)的頁面形成視圖對(duì)象
9 返回視圖對(duì)象到前端控制器脐嫂。
10 視圖渲染,就是將ModelAndView對(duì)象中的數(shù)據(jù)放到request域中紊遵,用來讓頁面加載數(shù)據(jù)的账千。
11 通過第8步,通過名稱找到了對(duì)應(yīng)的頁面暗膜,通過第10步蕊爵,request域中有了所需要的數(shù)據(jù),那么就能夠進(jìn)行視圖渲染了桦山。最后將其返回即可攒射。
————————————————
原文鏈接:https://blog.csdn.net/qinqigang/article/details/78540543