springmvc簡(jiǎn)介
文章出處:http://psychicreadingswithdeb.com 作者:興邦開(kāi)發(fā)部 人氣: 發(fā)表時(shí)間:2016年03月18日
springmvc簡(jiǎn)介
Spring為展現層提供了一個(gè)優(yōu)秀的Web框架--Spring mvc。和眾多其他Web框架一樣,它基于MVC設計理念。
Spring MVC框架?chē)@DispacherServlet這個(gè)核心展開(kāi),DispatcherServlet是Spring mvc的總導演,總策劃,它負責截獲請求并將其分派給相應的處理器處理。Spring mvc框架包括注解驅動(dòng)控制器,請求及響應的信息處理,試圖解析,本地化解析,上傳文件解析,異常處理以及表單標簽綁定等內容。
和大多數Web mvc框架一樣,SpringMVC通過(guò)一個(gè)前端Servlet接收所有請求,并將具體工作委托給其他組件進(jìn)行處理,DispatcherServlet就是Spring mvc的前端Servlet。下面對Spring mvc處理請求做一個(gè)概述:
1:整個(gè)過(guò)程始于客戶(hù)端發(fā)出一個(gè)HTTP請求,Web應用服務(wù)器接收到這個(gè)請求,如果匹配DispatcherServlet的請求映射路徑(web.xml下指定),Web容器將該請求轉交給DispatcherServlet處理。
2:DispatcherServlet接收到請求后,將根據請求信息(包括URL,HTTP方法等)及HandlerMapping的配置找到處理請求的處理器(Handler)??蓪andlerMapping看成是路由器,將Handler看成是目標主機。值得注意的是:Spring mvc中并沒(méi)有定義一個(gè)Handler接口,實(shí)際上任何一個(gè)Object都可以成為請求的處理器。
3:當DispatcherServlet根據HandlerMapping得到對應當前請求的Handler后,通過(guò)HandlerAdapter的Handler進(jìn)行封裝,再以統一的適配器接口調用Handler。HandlerAdapter是Spring mvc的框架級接口,顧名思義HandlerAdapter是一個(gè)適配器,它用統一的接口對各種Handler方法進(jìn)行調用。
4:處理器完成業(yè)務(wù)邏輯的處理后將返回一個(gè)ModelAndView給DsipatcherServlet,ModelAndView包含了試圖邏輯名和模型數據信息。
5:ModelAndView中包含的是“邏輯試圖名”而非真正的視圖對象,DispatcherServlet借由ViewResolver完成邏輯試圖名到真是試圖對象的解析工作。
6:當得到真實(shí)的視圖對象view后DispatcherServlet就使用這個(gè)View對象對ModelAndView中的模型數據進(jìn)行試圖渲染。
7:最終客戶(hù)端得到的相應消息,可能是一個(gè)普通的HTML頁(yè)面,也可能是一個(gè)XML或JSON串,甚至是一張圖片或一個(gè)PDF文檔等不同的媒體形式。
以上每一步驟都包含著(zhù)豐富的知識點(diǎn)。但是第一部都是要配置好在web.xml中DispatcherServlet,讓Spring mvc的心臟跳動(dòng)起來(lái)。