springmvc框架原理分析
2021-07-13 13:05
标签:查找 图解 image 注解 Servle 前端 png 逻辑 映射 springmvc全名是spring web mvc,springmvc是spring的一个模块,并且看名字即可知道,springmvc是一个基于mvc设计模式的前端web框架。mvc:m(model模型)、v(view视图)、c(control控制) SpringMVC的工作原理图: 1、发起请求到前端控制器(DispatcherServlet),该控制器中就会过滤出你哪些请求可以访问该servlet哪些不可以,就是url-pattern的作用,并且会加载springmvc.xml配置文件 2、前端控制器会找到HandlerMapping(处理器映射器),通过HandlerMapping完成url到controller映射的组件,通俗点讲,就是将在springmvc.xml中配置的或者注解的url与对应的处理类找到并进行存储,实际上是用一个map集合来保存这种映射关系,map 3、通过HandlerMapping有了这些映射关系,并且找到了url对应的处理器,HandlerMapping就会将其处理器(图中红色标明的handler)返回,在其返回之前,在加上很多的拦截器,其作用后面进行讲解,这里知道在返回的处理器前会有很多的拦截器即可。 4、DispatcherServlet拿到了handler之后,找到HandlerAdapter(处理器适配器),通过它来访问处理器,并且执行处理器。 这里会有人会有疑惑,为什么需要处理器适配器,我们都获得了处理类了,直接调用不就行了吗? 不行,因为我们只知道处理类在哪里,并不知道执行处理类中的哪个方法,其实也就是不知道处理类是通过哪种方式创建出来的,实现HttpRequestHandler?还是注解方式,或者是其他方式,我们不知道,所以需要HandlerAdapter来帮我们确认调用哪个方法。 5、执行处理器 6、处理器会返回一个ModelAndView对象给HandlerAdapter 7、通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet) 8、前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp),其实就是将ModelAndView对象中存放视图的名称进行查找,找到对应的页面形成视图对象 9、返回视图对象到前端控制器。 10、视图渲染,就是将ModelAndView对象中的数据放到request域中,用来让页面加载数据的。 11、通过第8步,通过名称找到了对应的页面,通过第10步,request域中有了所需要的数据,那么就能够进行视图渲染了。最后将其返回 组件说明: DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。 HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。 HandlAdapter:通过扩展处理器适配器,支持更多类型的处理器。 ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。 springmvc框架原理分析 标签:查找 图解 image 注解 Servle 前端 png 逻辑 映射 原文地址:https://www.cnblogs.com/my1903832579/p/9542652.html