SpringMVC的运行过程
在web.xml中配置核心Servlet:DispatcherServlet
- TomCat容器启动时会创建DispatcherServlet
- DispatcherServlet调用生命周期init方法创建Spring容器,存放在Application域中,初始化SpringMVC九大组件
- 当请求到达时,调用doDispatch方法对请求进行处理
- 借助MultipartResolver组件,判断是否是文件上传请求
- 借助HandlerMappings组件根据请求路径找到对应的处理器调用链
- 根据对应处理器类型,获取HandlerAdapter组件
- 调用applyPreHandle方法进行前置拦截处理
- 通过HandlerAdapter进行处理器方法的调用,并统一返回ModelAndView对象
- 如果返回的ModelAndView对象不包含视图信息,则调用RequestToViewNameTranslator组件解析一个默认的视图名
- 调用applyPostHandle方法进行后置拦截处理
- 如果上述出现了错误,则记录异常信息,调用HandlerExceptionResolver组件处理
- 进行结果的处理,借助视图解析器ViewResolver和逻辑视图名解析出View对象,
- 调用View的render方法进行页面渲染
- 调用triggerAfterCompletion拦截器方法