Tomcat :一個簡單的Servlet容器+Spring MVC響應流程
阿新 • • 發佈:2019-02-06
Spring Web MVC 處理Http請求的大致過程:
一旦Http請求到來,DispatcherSevlet將負責將請求分發。
DispatcherServlet可以認為是Spring提供的前端控制器,所有的請求都有經過它來統一分發。
在DispatcherServlet將請求分發給Spring Controller之前,需要藉助於Spring提供的HandlerMapping定位到具體的Controller。
HandlerMapping是這樣一種物件,它能夠完成客戶請求到Controller之間的對映。
在Struts中,這種對映是通過struts-config.xml檔案完成的。
其中,Spring為Controller介面提供了若干實現,例如Spring預設使用的BeanNameUrlHandlerMapping。
還有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。
Spring Controller將處理來自DispatcherServlet的請求。
Spring的Controller類似於struts的Action,能夠接受HttpServletRequest和HttpServletResponse。
Spring為Controller介面提供了若干實現類,位於org.springframework.web.servlet.mvc包中。
由於Controller需要為併發使用者處理上述請求,因此實現Controller介面時,必須保證執行緒安全並且可重用。
Controller將處理客戶請求,這和Struts Action 扮演的角色是一致的。
一旦Controller處理完客戶請求,則返回ModelAndView物件給DispatcherServlet前端控制器。
ModelAndView中包含了模型(Model)和檢視(View)。
從巨集觀角度考慮,DispatcherServlet是整個Web應用的控制器;
從微觀角度考慮,Controller是單個Http請求處理過程中的控制器,而ModelAndView是Http請求過程中返回的模型和檢視。
前端控制器返回的檢視可以是檢視的邏輯名,或者實現了View介面的物件。
View物件能夠渲染客戶響應結果。其中,ModelAndView中的模型能夠供渲染View時使用。
藉助於Map物件能夠儲存模型。
如果ModelAndView返回的檢視只是邏輯名,則需要藉助Spring提供的檢視解析器(ViewResoler)在Web應用中查詢View物件,從而將響應結果渲染給客戶。
DispatcherServlet將View物件渲染出的結果返回個客戶。
一旦Http請求到來,DispatcherSevlet將負責將請求分發。
DispatcherServlet可以認為是Spring提供的前端控制器,所有的請求都有經過它來統一分發。
在DispatcherServlet將請求分發給Spring Controller之前,需要藉助於Spring提供的HandlerMapping定位到具體的Controller。
HandlerMapping是這樣一種物件,它能夠完成客戶請求到Controller之間的對映。
在Struts中,這種對映是通過struts-config.xml檔案完成的。
其中,Spring為Controller介面提供了若干實現,例如Spring預設使用的BeanNameUrlHandlerMapping。
還有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。
Spring Controller將處理來自DispatcherServlet的請求。
Spring的Controller類似於struts的Action,能夠接受HttpServletRequest和HttpServletResponse。
Spring為Controller介面提供了若干實現類,位於org.springframework.web.servlet.mvc包中。
由於Controller需要為併發使用者處理上述請求,因此實現Controller介面時,必須保證執行緒安全並且可重用。
Controller將處理客戶請求,這和Struts Action 扮演的角色是一致的。
一旦Controller處理完客戶請求,則返回ModelAndView物件給DispatcherServlet前端控制器。
ModelAndView中包含了模型(Model)和檢視(View)。
從巨集觀角度考慮,DispatcherServlet是整個Web應用的控制器;
從微觀角度考慮,Controller是單個Http請求處理過程中的控制器,而ModelAndView是Http請求過程中返回的模型和檢視。
前端控制器返回的檢視可以是檢視的邏輯名,或者實現了View介面的物件。
View物件能夠渲染客戶響應結果。其中,ModelAndView中的模型能夠供渲染View時使用。
藉助於Map物件能夠儲存模型。
如果ModelAndView返回的檢視只是邏輯名,則需要藉助Spring提供的檢視解析器(ViewResoler)在Web應用中查詢View物件,從而將響應結果渲染給客戶。
DispatcherServlet將View物件渲染出的結果返回個客戶。