SpringMVC原理

工作流程

  • 1.用户发送请求到DispatcherServlet(前端处理器)

  • 2.DispatcherServlet调用HandlerMapping(处理器映射器)

  • 3.HandlerMapping根据配置(xml/注解)找到最终要执行的Handler,生成处理器对象及处理器拦截器返回给DispatcherServlet

  • 4.DispatcherServlet调用HandlerAdapter(处理器适配器)

  • 5.HandlerAdapter根据规则执行相应的Controller

  • 6.Controller执行完成返回ModelAndView

  • 7.HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

  • 8.DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)

  • 9.ViewReslover解析完成返回具体View给DispatcherServlet

  • 10.DispatcherServlet根据View渲染视图,将模型数据转为Response响应

组件说明

DispatcherServlet(前端控制器)【框架提供】

  • 说明:作为前端控制器,是整个流程的控制中心,控制其他组件执行,统一调度,降低组件之间的耦合性,提个组件的扩展性。相当于MVC中的C

  • 作用:接收请求,相应结果,相当于转发器、中央处理器

HandlerMapping(处理器映射器)【框架提供】

  • 说明:通过扩展处理器映射器实现不同的映射方式(例如:配置文件方式、实现接口方式、注解方式等)

  • 作用:根据请求url查找Handler

处理器适配器(HandlerAdapter)

  • 说明:适配器模式的应用,通过扩展处理器适配器,支持更多类型的处理器

  • 作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

Handler(处理器)【自行开发】

  • 说明:Handler是后端控制器(即Controller),在DispatcherServlet的控制下Handler对具体的用户请求进行处理(Handler一般为具体的业务请求)

  • 作用:处理具体用户请求

注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

ViewResolver(视图解析器)【框架提供】

  • 说明:ViewResolver负责将处理结果生产View视图。首先根据逻辑视图名解析成物理视图名(即页面地址),再生成View视图对象,最后渲染View返回。SpringMVC支持更多类型的视图解析(例如:JSP、freemarker,PDF,Excel等View)

  • 作用:进行视图解析,根据逻辑视图名解析成真正的视图

View(视图)【自行开发】

  • View是一个接口,实现类支持不同的View类型(JSP、freemarker、PDF等)

参考:https://blog.csdn.net/qq_43378945/article/details/90907427

posted @ 2020-08-13 00:30  Sky-Climber  阅读(92)  评论(0)    收藏  举报