目录
相信大家在刚接触到springMVC的时候,上手时接触的第一个理论应该就是mvc的含义,我们先简单的回顾一下,什么是MVC。
MVC的全名是Model View Controller,是一种使用“模型-视图-控制器”设计创建Web应用程序的模式,同时提供了对HTML、CSS和JavaScript的完全控制,它是一种软件设计典范。
有了这三个核心概念以后,我们就可以简单的说下MVC执行流程,如下图
这张图只是展示出了 SpringMVC 的 MVC 三部分的处理情况:也就是浏览器发送http请求到控制器中,控制器根据请求的url选择对应的模型进行处理,然后返回响应结果给控制器,控制器把数据交由视图进行视图渲染,最后返回视图对象,最后通过控制器将响应结果返回给浏览器。
显然上面简单的执行流程并没有涉及到更加深层面的解读,在进行理解之前,我们先认识一下SpringMVC执行流程的核心组件。
(1)DispactherServlet(前端控制器):接收请求、响应结果,相当于转发器,它是SpringMVC框架最核心的组件,有了它就能减少其他组件之间的耦合度。
(2)HandlerMapping(处理器映射器):根据配置的映射规则(根据请求的URL),找到对应的处理器。
(3)HandlerAdapter(处理器适配器):适配调用具体的处理器,并且执行处理器中处理请求的方法,执行完毕之后返回一个ModelAndView对象。
(4)Handler(处理器):编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
(5)ViewResolver(视图解析器):会根据传递过来的ModelAndView对象进行视图解析,根据视图解析名解析称真正的视图View。
(6)View(视图):View是一个接口,它的实现类支持不同类型的视图。比如:JSP、freemarker、Thymeleaf等等。
需要注意的是在这些核心组件中,视图与处理器是需要我们程序员进行开发的。
(1)用户通过浏览器发起一个HTTP请求,请求直接到前端控制器DispatcherServlet
(2)前端控制器接收到请求以后调用处理器映射器HandlerMapping,处理器映射器根据请求的URL找到具体的Handler,并将它返回给前端控制器
(3)前端控制器调用处理器适配器HandlerAdapter去适配调用Handler
(4)处理器适配器会根据Handler去调用真正的处理器去处理请求,并且处理对应的业务逻辑
(5)当处理器处理完业务之后,会返回一个ModelAndView对象给处理器适配器,HandlerAdapter再将该对象返回给前端控制器;Model是之返回的数据对象,View是指逻辑上的View
(6)前端控制器DispatcherServlet将返回的ModelAndView对象传给视图解析器ViewResolver进行解析,解析完成之后就会返回一个具体的视图View给前端控制器。(ViewResolver根据逻辑的View查找具体的View)
(7)前端控制器DispatcherServlet将具体的视图进行渲染
(8)渲染完成之后响应给用户(浏览器显示)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。