什么是Spring MVC?
Spring MVC是Spring后续的一个产品,是spring的一个子项目,是Spring在表述层一共的一套完整的解决方案。
MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
Spring MVC特点:
-
SpringMVC遵守了MVC分层思想,上面提到有Model,View,Controller三层结构。
-
采用了松耦合、插件式结构,更灵活、更具扩展性
-
Spring MVC是基于Spring的扩展、提供了一套完善的MVC注解
-
Spring MVC在数据绑定、视图解析都提供了多种处理方式,可灵活配置
-
Spring MVC对Restful URL设计方法提供了良好的支持,支持Restful风格
Spring MVC的本质工作就是:
- 接收并解析请求
- 处理请求
- 数据渲染、响应请求
Spring MVC核心组件
DispatcherServlet:核心的中央处理器,负责接收请求、分发,并给予客户端响应。HandlerMapping:处理器映射器,根据 uri 去匹配查找能处理的Handler,并会将请求涉及到的拦截器和Handler一起封装。HandlerAdapter:处理器适配器,根据HandlerMapping找到的Handler,适配执行对应的Handler;Handler:请求处理器,处理实际请求的处理器。ViewResolver:视图解析器,根据Handler返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给DispatcherServlet响应客户端
Spring MVC工作原理
流程说明:
- 客户端(浏览器)发送请求,
DispatcherServlet拦截请求。 DispatcherServlet根据请求信息调用HandlerMapping。HandlerMapping根据 uri 去匹配查找能处理的Handler(也就是我们平常说的Controller控制器) ,并会将请求涉及到的拦截器和Handler一起封装。DispatcherServlet调用HandlerAdapter适配器执行Handler。Handler完成对用户请求的处理后,会返回一个ModelAndView对象给DispatcherServlet,ModelAndView顾名思义,包含了数据模型以及相应的视图的信息。Model是返回的数据对象,View是个逻辑上的View。ViewResolver会根据逻辑View查找实际的View。DispaterServlet把返回的Model传给View(视图渲染)。- 把
View返回给请求者(浏览器)。