目录
DispatcherServlet 本质上是一个 Servlet,所以天然的遵循 Servlet 的生命周期。所以宏观上是 Servlet 生命周期来进行调度
1、用户向服务器发送请求,请求被SpringMVC前端控制器DispatcherServlet
2、DispatcherServlet对请求URL进行解析,得到请求资源标识符,判断请求对应的映射
3、根据URI,调用HandleMappering获得该Handler配置的所有相关的对象,包括控制层方法和该方法的拦截器,最后以处理器链返回。
4、DispatcherServlet获取处理器链里的Handle,根据Handle获取对应的HandleAdapter
5、成功找到对应的HandleAdapter,执行拦截器的preHandler
6、将request的参数,根据Handler(控制层方法)的参数,执行参数转换,如json数据转对象,String类型转Integer、Double等。
7、执行完成后,向前端控制器返回一个ModelAndView
8、执行拦截器postHandler
9、根据返回的ModelAndView(此时会判断是否存在异常:如果存在异常,则执行HandlerExceptionResolver进行异常处理)选择一个适合【这里有多种视图解析器】的ViewResolver进行视图解析,根据Model和View,来渲染视图
10、渲染视图,返回客户端