摘要
Spring MVC 是一个开源的、基于 MVC 架构的 WEB 应用框架。这里记录 MVC 模型的概念以及 Spring MVC 的请求处理流程。
关键词:Spring MVC
一、什么是 Spring MVC
Spring MVC 是一个开源的、基于 MVC 架构的 WEB 应用框架。
Spring MVC 是基于 MVC 框架的,MVC 为:
- 模型(Model)封装了应用程序数据,通常它们由 POJO 类组成;
- 视图(View)负责渲染模型数据,生成浏览器可以理解的 HTML 输出;
- 控制器(Controller)负责处理用户请求,构建模型,并将其传递给视图进行渲染;
MVC 关系图如下:
(图 1:MVC 模型)
二、Spring MVC 核心组件及处理流程
1、Spring MVC 处理流程
首先给出 Spring MVC 的组件及其处理流程图:
(图 2:Spring MVC 处理流程图)
处理流程大致分为三步:
- 分发:请求最开始进入 Spring MVC 时,DispatcherServlet 会根据请求路径查找到对应的 Handler 对象;
- 处理:HandlerAdapter 会对请求做处理,执行一系列的拦截器和 Handler 业务代码,最后返回 ModelAndView 对象;
- 渲染:根据 Handler 返回的对象,找到 ViewResolver,ViewResolver 结合 Model 和 View 对象渲染成页面返回;
2、Spring MVC 核心组件
对照前面的流程图,这里列出 Spring MVC 几个核心组件:
组件 | 描述 |
---|---|
DispatcherServlet | 前置控制器,配置在 web.xml 文件中,拦截匹配的请求。从容器中取出所有的 HandlerMapping 进行遍历,找到对应的 Handler。 |
HandlerMapping | 根据请求去找对应的 Handler,并将 Handler 及一系列 HandlerInterceptor 封装到 HandlerExecutionChain 中。 |
HandlerAdapter | 根据 Handler 来找到支持它的 HanderAdapter,通过 HandlerAdapter 来执行 Handler 可以得到 ModelAndView 对象。 |
HandlerIntercepter | 视图接口的处理器拦截器,类似于 Servlet 中的 Filter,用于对请求进行拦截和处理。 |
Controller | 处理请求,执行业务。 |
ModelAndView | 表示你想展示的页面信息。 |
ViewResolver | 用于将一个逻辑上的视图名解析为一个真正的视图对象。 |
View | View 接口用于处理视图,返回给客户端。 |
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于