SpringMVC框架是一個基于請求驅動的Web框架,,并且使用了‘前端控制器’模型來進行設計,再根據(jù)‘請求映射規(guī)則’分發(fā)給相應的頁面控制器進行處理,。 (一)整體流程具體步驟: 1,、 首先用戶發(fā)送請求到前端控制器,,前端控制器根據(jù)請求信息(如 URL)來決定選擇哪一個頁面控制器進行處理并把請求委托給它,即以前的控制器的控制邏輯部分,;圖中的 1,、2 步驟; 2,、 頁面控制器接收到請求后,,進行功能處理,首先需要收集和綁定請求參數(shù)到一個對象,,這個對象在 Spring Web MVC 中叫命令對象,,并進行驗證,然后將命令對象委托給業(yè)務對象進行處理,;處理完畢后返回一個 ModelAndView(模型數(shù)據(jù)和邏輯視圖名),;圖中的 3、4,、5 步驟,; 3、 前端控制器收回控制權,,然后根據(jù)返回的邏輯視圖名,,選擇相應的視圖進行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染,;圖中的步驟 6,、7; 4,、 前端控制器再次收回控制權,,將響應返回給用戶,圖中的步驟 8,;至此整個結束,。 (二)核心流程具體步驟: 第一步:發(fā)起請求到前端控制器(DispatcherServlet) 第二步:前端控制器請求HandlerMapping查找 Handler (可以根據(jù)xml配置、注解進行查找) 第三步:處理器映射器HandlerMapping向前端控制器返回Handler,,HandlerMapping會把請求映射為HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象,,多個HandlerInterceptor攔截器對象),通過這種策略模式,,很容易添加新的映射策略 第四步:前端控制器調(diào)用處理器適配器去執(zhí)行Handler 第五步:處理器適配器HandlerAdapter將會根據(jù)適配的結果去執(zhí)行Handler 第六步:Handler執(zhí)行完成給適配器返回ModelAndView 第七步:處理器適配器向前端控制器返回ModelAndView (ModelAndView是springmvc框架的一個底層對象,,包括 Model和view) 第八步:前端控制器請求視圖解析器去進行視圖解析 (根據(jù)邏輯視圖名解析成真正的視圖(jsp)),通過這種策略很容易更換其他視圖技術,,只需要更改視圖解析器即可 第九步:視圖解析器向前端控制器返回View 第十步:前端控制器進行視圖渲染 (視圖渲染將模型數(shù)據(jù)(在ModelAndView對象中)填充到request域) 第十一步:前端控制器向用戶響應結果 (三)總結 核心開發(fā)步驟1,、 DispatcherServlet 在 web.xml 中的部署描述,從而攔截請求到 Spring Web MVC 2、 HandlerMapping 的配置,,從而將請求映射到處理器 3,、 HandlerAdapter 的配置,從而支持多種類型的處理器 注:處理器映射求和適配器使用紓解的話包含在了注解驅動中,,不需要在單獨配置 4,、 ViewResolver 的配置,從而將邏輯視圖名解析為具體視圖技術 5,、 處理器(頁面控制器)的配置,,從而進行功能處理 View是一個接口,實現(xiàn)類支持不同的View類型(jsp,、freemarker,、pdf...) |
|
來自: Bladexu的文庫 > 《技術文摘》