Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP 技术、Velocity、Tiles、iText 和 POI。

Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP 技术,但教程中使用的视图是 JSP,本节主要介绍 Spring MVC 框架处理用户请求的完整流程和处理中包含的 4 个接口。

Spring MVC 工作流程

Spring MVC 框架主要由 DispatcherServlet、处理器映射、控制器、视图解析器、视图组成,其工作原理如图 1 所示。


从图 1 可总结出 Spring MVC 的工作流程如下:

  • 客户端请求提交到 DispatcherServlet。
  • 由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller。
  • DispatcherServlet 将请求提交到 Controller。
  • Controller 调用业务逻辑处理后返回 ModelAndView。
  • DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器,找到 ModelAndView 指定的视图。
  • 视图负责将结果显示到客户端。

Spring MVC接口

在图 1 中包含 4 个 Spring MVC 接口,即 DispatcherServlet、HandlerMapping、Controller 和 ViewResolver。

Spring MVC 所有的请求都经过 DispatcherServlet 来统一分发,在 DispatcherServlet 将请求分发给 Controller 之前需要借助 Spring MVC 提供的HandlerMapping 定位到具体的 Controller。

HandlerMapping 接口负责完成客户请求到 Controller 映射。

Controller 接口将处理用户请求,这和 Java Servlet 扮演的角色是一致的。一旦 Controller 处理完用户请求,将返回 ModelAndView 对象给DispatcherServlet 前端控制器,ModelAndView 中包含了模型(Model)和视图(View)。

从宏观角度考虑,DispatcherServlet 是整个 Web 应用的控制器;从微观考虑,Controller 是单个 Http 请求处理过程中的控制器,而 ModelAndView 是Http 请求过程中返回的模型(Model)和视图(View)。

ViewResolver 接口(视图解析器)在 Web 应用中负责查找 View 对象,从而将相应结果渲染给客户。

Spring MVC处理用户请求的完整流程相关推荐

  1. Spring MVC 异步处理请求,提高程序性能

    原文:http://blog.csdn.net/he90227/article/details/52262163 什么是异步模式 如何在Spring MVC中使用异步提高性能?一个普通 Servlet ...

  2. java mvc 绑定_关于Java:Spring MVC:将请求属性绑定到控制器方法参数

    在Spring MVC中,很容易将请求参数绑定到处理请求的方法参数. 我只是使用@RequestParameter("name"). 但是我可以对request属性做同样的事情吗? ...

  3. 【MVC、Spring MVC介绍、区别、执行流程】

    介绍 MVC(Model-View-Controller)是一种软件架构模式,其中应用程序被划分为三个部分:模型(Model).视图(View)和控制器(Controller).MVC框架的主要目标是 ...

  4. Spring MVC定制用户登录注销实现示例

    这篇文章描述了如何实现对Spring MVC Web应用程序的自定义用户访问(登录注销). 作为前提,建议读者阅读这篇文章 ,其中介绍了一些Spring Security概念. 该代码示例可从Spri ...

  5. spring mvc对异步请求的处理

    在spring mvc3.2及以上版本增加了对请求的异步处理,是在servlet3的基础上进行封装的. 1.修改web.xml <?xml version="1.0" enc ...

  6. spring mvc 和ajax异步交互完整实例

    2019独角兽企业重金招聘Python工程师标准>>> Spring MVC 异步交互demo: 1.jsp页面: <%@ page language="java&q ...

  7. Spring mvc Interceptor 解决Session超时配置流程

    最近公司内部框架中对Session超时这一功能未实现,由于采用iframe结构,Session超时后,当点击左侧系统菜单时,会在iframe的右侧再次弹出登陆框. 该问题是由于没有设置拦截器造成. 添 ...

  8. 初探Spring MVC 请求处理流程

    Spring MVC 相对于前面的章节算是比较简单的,我们首先引用<Spring in Action>上的一张图来了解Spring MVC 的核心组件和大致处理流程: 从上图中看到 ①.D ...

  9. Spring MVC的处理流程详解

    本文来说下Spring MVC 的处理流程是怎样的 文章目录 Spring MVC概述 Spring MVC的处理流程 曾经的王者-Servlet 想要更进一步 Spring MVC-两级控制器方式 ...

最新文章

  1. 全平台硬件解码渲染方法与优化实践
  2. 九城最多多少组服务器,历经4年之久 九城WOW服务器价值几何
  3. sqlmap第一次打靶成功
  4. 济宁医学院计算机科学与技术专业怎么样,济宁医学院专业排名及介绍 哪些专业最好...
  5. debian php mysql 包_debian php mysql
  6. SoapUI、Jmeter、Postman三种接口测试工具的比较分析
  7. 【学术工具】公式免费转 LaTex 代码,截图、转换一气呵成,每月 1000 次全免费...
  8. iOS 给测试人员测试手机APP的四种方法:真机运行(略),打ipa包,(testFlighe)邮件,蒲公英(二)testflight
  9. softmax和cross_entropy
  10. 支持语言locale
  11. 实体消歧、实体统一和指代消歧
  12. 迭代器怎么就节省内存了?
  13. 【前端领域高频笔试面试】—— HTML+CSS相关
  14. 手机设备端口9006刷回9008救砖步骤
  15. win10卸载电脑管家就蓝屏_99%的电脑都有的win10蓝屏问题,两步就能解决!
  16. 拍卖系统业务演进过程(一)
  17. 计算机网络课设--监控IP、解析IP数据包(MFC版,可直接运行)
  18. 马云能否对反向收购雅虎说不?
  19. 宇视摄像机RTSP地址格式规则
  20. 【数据库系统经典案例】销售系统数据库分析及完整实现过程

热门文章

  1. 领导逼走员工的新套路,一次就见效
  2. Docker学习总结(55)——Google和Facebook为什么不用Docker?
  3. Java基础学习总结(159)——JDK15 正式发布了!新增14个新特性
  4. Java基础学习总结(66)——配置管理库typesafe.config教程
  5. Linux系统内存管理实验报告,Linux 内存管理 综合实验报告.pdf
  6. java对象的我可变属性,不可变对象的所有属性都必须是最终的吗?
  7. discuz 服务器维护,论坛服务器经常宕机 - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...
  8. Spring系统学习:20180612--aop配置中表达式的写法
  9. Centos0S7手动安装OpenStack Pike版--(Evironment)
  10. 一步一步搭建oracle 11gR2 rac+dg之环境准备(二)【转】