spring mvc执行流程
Spring MVC 请求->响应的完整流程
1.用户向服务器发送请求,请求被Spring前端控制器DisptcherServlet截获
2.DispatcherServlet对请求URL(同一资源定位符)进行解析,得到URI(请求资源标示符)。然后根据该URI,调用HandlerMapping后的该Hander配置的所有相关的对象,包括Hander对象以及Hander对象对应的拦截器,这些对象会被封装到一个HanderExecutionChain对象当中返回。
3.DispatcherServlet根据获得的Handler,选择一个合适的HanderAdatper。HanderAdatper的设计符合面向对对象中的单一职责原则,代码架构清晰,便于维护,最重要的是,代码可复用性高,HandlerAdapter会被用于处理多中Handler,调用Handler实际处理请求的方法。
4.提取请求中的模型数据,开始执行Handler,在填充Handler的入参过程中,根据配置,Spring将帮你做到一些额外的工作。(消息转换,数据转换,数据格式化,数据验证)
5.Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象,ModelAndView对象中应该包含视图名或视图名和模型。
6.根据返回的ModleAndView对象,选择一个合适的ViewResolve(视图解析器)返回DispatcherServlet。
7.ViewResolver结合Modle和View来渲染视图。
8.将试图渲染结果返回个客户端。