SpringMVC执行流程
2023-09-27 14:24:42 时间
SpringMVC三大核心组件
- HandlerMapping处理器映射器:建立地址与方法的映射。
HandlerMapping负责根据用户请求url找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
- HandlerAdapter处理器适配器:根据地址调用方法。
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。
- ViewResolver 视图解析器:处理ModelAndView数据和视图。
ViewResolver通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
SpringMVC执行流程图
Spring执行流程具体步骤
1.用户发送请求至前端控制器DispatcherServlet。 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4.DispatcherServlet通过HandlerAdapter处理器适配器调用处理器。 5.执行处理器(Controller层,也叫后端控制器)。 6.Controller执行完成返回数据和视图(ModelAndView)。 7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。 8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 9.ViewReslover解析后返回具体的View视图(JSP / HTML)。 10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。 11.DispatcherServlet响应用户,用户看到界面和数据。
总结流程
Spring MVC所有的请求都经过DispatcherServlet来统一分发。DispatcherServlet将请求分发给Controller之前,需要借助于Spring MVC提供的HandlerMapping定位到具体的Controller。
HandlerMapping接口负责完成客户请求到Controller映射。
Controller接口将处理用户请求,这和Java Servlet扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView(数据和视图)对象给DispatcherServlet前端控制器。从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。
返回的视图需要通过ViewResolver接口(视图解析器)在Web应用中负责查找View对象,从从而将相应结果渲染给客户。
相关文章
- SpringMVC源码解析DispatcherServlet#doDispatch方法流程
- SpringMVC源码剖析(三)- DispatcherServlet的初始化流程
- SpringMVC @RequestBody接收Json对象字符串 demo
- springmvc 常用注解
- springMVC+mysql实现图书管理系统
- springmvc文件上传
- SpringMVC @RequestBody 接收Json数组对象
- springmvc中url-url-pattern /和/*的区别
- 基于SpringMVC下的Rest服务框架搭建【集成Swagger】
- SpringMVC 集成 Freemarker 模板引擎
- springMVC怎么接受前台传过来的多种类型参数?(集合、实体、单个参数)
- SpringMVC工作原理
- springMVC
- SpringMVC 和Struts2的区别
- springMvc--请求的跳转和传值
- SpringMVC(六):SpringMVC的常见注解
- springmvc StringHttpMessageConverter 中文乱码的几种解决办法(亲测)