Spring MVC設計概覽

Spring的上下文體系通過ContextLoader和DispatcherServlet建立並初始化的過程。

在完成對ContextLoaderListener的初始化之後,Web容器開始初始化DispatcherServlet,這個初始化的啓動與在web.xml中載入次序的定義有關。DispatcherServlet會建立自己的上下文來持有Spring MVC的Bean對象,在建立自己持有的IOC容器時,會從ServletContext中得到根上下文作爲DispatcherServlet持有上下文的雙親上下文。有了這個根上下文,再對自己持有的上下文進行初始化,最後把自己持有的這個上下文保存到ServletContext中,供以後檢索和使用。


DispatcherServlet類的繼承關係

DispatcherServlet通過繼承FrameworkServlet和HttpServletBean而繼承了HttpServlet,通過使用Servlet API對Http請求進行響應,稱爲Spring MVC的前端處理器,同時成爲MVC模塊與Web容器集成的處理器端。

DispatcherServlet的工作大致可以分爲兩個部分:一個是初始化部分,由initServletBean啓動,通過initWebApplicationContext最終調用DispatcherServlet的initStrategies方法,在這個方法裏,DispatcherServlet對MVC模塊的其他部分進行了初始化,比如HandlerMapping、ViewResolver等,另一個是對HTTP請求進行響應,作爲一個Servlet,Web容器會調用Servlet的doGet和doPost方法,經過FrameworkServlet的processRequest簡單處理後,會調用DispatcherServlet的doService方法,這個方法調用中封裝了doDispatch,這個doDispatch是Dispatcher實現MVC模式的主要部分。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章