- 一、概述
- Spring web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型。
- 1、什么是MVC?
- 模型-视图-控制器(MVC)是一个以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。
- 通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,
- 并调用后台服务来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。M
- VC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。
- 2、Spring MVC架构
- SpringMVC是一个基于请求驱动的Web框架,使用前端控制器模式来进行设计,在根据映射规则分发给相应的页面控制器进行处理。其请求处理流程如下图所示:
具体执行步骤如下:
1、客户端发出一个 HTTP 请求,Web 应用服务器接收到这个请求,如果匹配 DispatcherServlet 的请求映射路径 (web.xml 中指定),Wen 容器就会将该请求转交给 DispatcherServlet 处理。
2、DispatcherServlet 接收到这个请求后,将根据请求的信息和 HandlerMapping 的配置找到处理请求的处理器 (Handler)。
3、得到 Handler 后,通过 HandlerAdapter 对 Handler 进行封装,再以统一的适配器接口调用 Handler。
4、处理器完成业务逻辑的处理后返回一个 ModelAndView 给 DispatcherServlet,ModelAndView 包含了视图逻辑名和模型数据信息。
5、DispatcherServlet 借由 ViewResolver 完成逻辑视图名到真实视图对象的解析工作。
6、当得到真实的视图对象 view 后,DispatcherServlet 就使用这个 View 对象对 ModelAndView 中模型数据进行渲染。
7、客户端最终得到的响应消息可能是一个普通的 html 页面,也可能是一个 XML 或者是 JSON 串。
来源: http://www.bubuko.com/infodetail-1962743.html