struts配置請(qǐng)求方法 mvc操作流程?
mvc操作流程?Spring MVC工作流描述:1.用戶向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求被Spring前端控件Servelt DispatcherServlet捕獲;2.DispatcherServlet解析請(qǐng)
mvc操作流程?
Spring MVC工作流描述:
1.用戶向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求被Spring前端控件Servelt DispatcherServlet捕獲;
2.DispatcherServlet解析請(qǐng)求URL以獲取請(qǐng)求資源標(biāo)識(shí)符(URI)。然后根據(jù)URI調(diào)用HandlerMapping獲取處理程序配置的所有相關(guān)對(duì)象(包括處理程序?qū)ο蠛吞幚沓绦驅(qū)ο髮?duì)應(yīng)的攔截器),最后以HandlerExecutionChain對(duì)象的形式返回;
3.DispatcherServlet選擇合適的HandlerAdapter根據(jù)獲取的Handler生成相應(yīng)的文件;
4.提取請(qǐng)求中的模型數(shù)據(jù),填充處理程序的參數(shù),開(kāi)始執(zhí)行處理程序(控制器)。
在填充Handler的參數(shù)的過(guò)程中,根據(jù)你的配置,Spring會(huì)幫你做一些額外的工作:
HttpMessageConvet:將請(qǐng)求消息(如Json、xml等數(shù)據(jù))轉(zhuǎn)換成對(duì)象,并將對(duì)象轉(zhuǎn)換成指定的響應(yīng)信息。
數(shù)據(jù)轉(zhuǎn)換:對(duì)請(qǐng)求消息執(zhí)行數(shù)據(jù)轉(zhuǎn)換。比如串成整數(shù),雙精度等。
數(shù)據(jù)根:請(qǐng)求消息的數(shù)據(jù)格式。例如將字符串轉(zhuǎn)換成格式化的數(shù)字或格式化的日期。
數(shù)據(jù)驗(yàn)證:驗(yàn)證數(shù)據(jù)的有效性(長(zhǎng)度、格式等。),驗(yàn)證結(jié)果存儲(chǔ)在BindingResult或Error中。
5.處理程序執(zhí)行后,向DispatcherServlet返回一個(gè)ModelAndView對(duì)象;
6.根據(jù)返回的ModelAndView,選擇合適的ViewResolver(必須在Spring容器中注冊(cè))并返回給Dispatch
spring的工作流程?
春季工作的過(guò)程
流程如下:
1.用戶向前端控制器(DispatcherServlet)發(fā)起一個(gè)請(qǐng)求,它將過(guò)濾出哪些請(qǐng)求可以訪問(wèn)Servlet,哪些不能。是url-pattern的角色,并將加載配置文件。
2.前端控制器會(huì)找到HandlerMapping,通過(guò)HandlerMapping完成url到con。troller mapping的組件,簡(jiǎn)單來(lái)說(shuō)就是找到并存儲(chǔ)springmvc.xml中配置或注釋的url以及對(duì)應(yīng)的處理類,并以maplturl,handlergt的形式存儲(chǔ)。
3.HandlerMapping有映射關(guān)系,找到url對(duì)應(yīng)的處理器。HandlerMapping會(huì)返回它的handler,在返回之前會(huì)添加很多攔截器。
4.DispatcherServlet獲取處理程序后,會(huì)找到HandlerAdapter,用于訪問(wèn)處理器和執(zhí)行處理器。
5.執(zhí)行處理器
6.處理器將返回一個(gè)ModelAndView對(duì)象給HandlerAdapter。
7.通過(guò)HandlerAdapter將ModelAndView對(duì)象返回給前端控制器(DispatcherServlet)。
8.前端控制器請(qǐng)求ViewResolver解析視圖,并根據(jù)邏輯視圖名稱將其解析為真實(shí)視圖(jsp)。其實(shí)就是搜索ModelAndView對(duì)象中存儲(chǔ)的視圖名稱,找到對(duì)應(yīng)的頁(yè)面,形成視圖對(duì)象。
9.將視圖對(duì)象返回到前端控制器。
10、視圖渲染,就是把ModelAndView對(duì)象中的數(shù)據(jù)放到請(qǐng)求域中,用來(lái)讓頁(yè)面加載數(shù)據(jù)。
11.通過(guò)第8步,根據(jù)名稱找到相應(yīng)的頁(yè)面。通過(guò)步驟10,請(qǐng)求字段中所需的數(shù)據(jù)是可用的,因此可以呈現(xiàn)視圖。最后,退貨。