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