Spring:MVC

本贴最后更新于 2029 天前,其中的信息可能已经天翻地覆

摘要

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 模型
(图 1:MVC 模型)

二、Spring MVC 核心组件及处理流程

1、Spring MVC 处理流程

首先给出 Spring MVC 的组件及其处理流程图:
图 2:Spring MVC 处理流程图
(图 2:Spring MVC 处理流程图)

处理流程大致分为三步:

  1. 分发:请求最开始进入 Spring MVC 时,DispatcherServlet 会根据请求路径查找到对应的 Handler 对象;
  2. 处理:HandlerAdapter 会对请求做处理,执行一系列的拦截器和 Handler 业务代码,最后返回 ModelAndView 对象;
  3. 渲染:根据 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 接口用于处理视图,返回给客户端。

参考资料

  1. 深入理解 Spring MVC 思想
  2. SpringMVC 框架理解
  3. MVC 简介
  4. Spring MVC 教程
  5. Spring MVC 请求处理流程
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 158 关注

相关帖子

1 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...