相关知识:在ContextLoaderer中,完成了两个IoC容器建立的基本过程,一个是在Web容器中建立建立起双亲IoC容器,另一个是生成相应的WebApplicationContext并将其初始化。
Spring MVC的设计与实现
DisptcherServlet的工作主要为两个部分:一个是初始化部分,由initServetBean()启动,通过initWebApplicationContext()方法最终调用DisptcherServlett的initStrategies方法,在这个方法里,DisptcherServlet对MVC模块读取其他进行了初始化,比如handerMapping、ViewResolver等,其中通过在handerMapping中查询找到HandlerExecutionChain中封装的controller完成请求处理动作,DisptcherServlet的render()通过resolveViewName解析视图[jsp视图、freemaker视图]
另一个是对HTTP请求进行相应,作为一个Servlet,Web容器会调用Servlet的doGet()和doPost()方法,在经过FrameWorkServlet的processRequest()简单处理后,会调用DisptcherServlet的doService()方法,在这个方法调用中封装了doDispatch,包括了准备ModelAndView
具体流程:DisptcherServlet--initWebApplicationContext()---handerMapping[controller]---doService[响应请求]---ModelAndeView----render---resloveViewName