一、理解
MVC模式时模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想时通过将请求处理控制、业务逻辑、数据封装、数据显示等流程节点分离的思想来组织代码。
所以,MVC 是一种设计模式,而Spring MVC是一款基于MVC设计模式思想实现的MVC框架,属于Spring技术栈的一部分。Spring MVC 可以帮助我们进行更简洁的 web 层开发。
二、工作原理
1.客户端 (浏览器)发送请求,统一由 DispatcherServlet 拦截处理请求。
2. DispatcherServlet 根据请求信息调用 HandlerMapping 。 HandlerMapping 根据 uri 去匹配查找能处理的 Handler (也就是我们定义的 Controller 控制器) ,并会将请求涉及到的拦截器和 Handler 一起封装。
3.DispatcherServlet 调用 HandlerAdapter 适配执行Handler。
4.Handler 完成对用户请求的处理后,会返回一个 ModelAndView 模型视图对象给 DispatcherServlet 。 ModelAndView 中包含了数据模型以及相应的视图信息。 Model 是返回
的数据对象,view 是 view 视图的逻辑名称。
5.ViewResolver 会根据逻辑 View 名称查找并解析实际的 View 视图文件,并根据 Dispa
terServlet 返回的 Model 数据模型传给 View 视图文件,进行染执行,产生响应结果。
6.DispaterServlet 负责将响应结果,输出至客户端浏览器。
三、核心组件
DispatcherServlet :核心处理器,负责统一接收请求、将请求分发至不同的控制器,并负责客户端响应。
HandlerMapping :处理器映射器,根据 uri 去匹配查找能处理的 Handler ,并会将请求涉及到的拦截器和 Handler 一起封装。
HandlerAdapter :处理器适配器,根据 HandlerMapping 找到的 Handler ,适配执行对应的Handler 。
Handler :请求处理器,处理实际请求的处理器。
ViewResolver :视图解析器,根据 Handler 返回的逻辑视图名称,解析并渲染真正的视图文件,并传递给 DispatcherServlet 响应至客户端。