Spring:MVC
摘要
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接口用于处理视图,返回给客户端。 |
参考资料
Spring:MVC的更多相关文章
- Spring MVC静态资源处理:<mvc:resources />
优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...
- Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用
Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...
- Spring:基于注解的Spring MVC
什么是Spring MVC Spring MVC框架是一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC ...
- 干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结
目录 C# VS JAVA 基础语法类比篇: 一.匿名类 二.类型初始化 三.委托(方法引用) 四.Lambda表达式 五.泛型 六.自动释放 七.重写(override) ASP.NET CORE ...
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块
spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...
- 菜鸟学习Spring Web MVC之二
有文章从结构上详细讲解了Spring Web MVC,我个菜鸟就不引据来讲了.说说强悍的XP环境如何配置运行环境~~ 最后我配好的环境Tomcat.Spring Tool Suites.Maven目前 ...
- 【Spring】Spring系列7之Spring整合MVC框架
7.Spring整合MVC框架 7.1.web环境中使用Spring 7.2.整合MVC框架 目标:使用Spring管理MVC的Action.Controller 最佳实践参考:http://www. ...
- 4.Spring Web MVC处理请求的流程
- 1.Spring Web MVC有什么
Spring Web MVC使用了MVC架构模式的思想,将web层进行职责解耦. 同样也是基于请求驱动的,也就是使用请求-响应模型.它主要包含如下组件: DispatcherServlet :前端控制 ...
随机推荐
- Windows10中使用Anaconda安装keras-gpu版本(遇到的坑)
1.使用conda install tensorflow-gpu 2.使用pip install keras 这里使用pip安装而不是使用conda,原因是使用conda安装会默认安装cpu版本的te ...
- mybatis的缓存简说
一级缓存(不需配置,默认为一级缓存): 1)相当于 sqlsession 级别的缓存 2)当 session 关闭(close)或者提交(commit)后,缓存数据清空 3)当发生insert.upd ...
- windows环境下ElasticSearch6 安装head插件
转: https://blog.csdn.net/shubingzhuoxue/article/details/80998738 https://blog.csdn.net/camelcanoe/ar ...
- python3 模拟鼠标和键盘操作
1. 安装pyperclip pip install pyperclip 使用方法复制 pyperclip.copy("hello world") 粘贴 pyperclip.pas ...
- Ehcache3.4 XML配置硬盘存储
最近开始学习使用Ehcache, 3.4的文档实在过于简单,尤其是对于XML配置,例子太少.相对于硬编码,我更偏爱灵活的XML配置,为了实现xml配置,摸索了两天,终于运行成功. ehcache.xm ...
- hive动态分区问题--分区为中文
报错如下: Loading data to table data_da.tmp_wlw_test partition (stat_date=2017-05-11, business_type_name ...
- 【转】sqlserver使用sql导出索引
转自:http://blog.itpub.net/16436858/viewspace-609341/ BEGIN WITH tx AS ( SELECT a.object_id ,b.name AS ...
- php生成带参数二维码
1.PHPqrCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo, https://sourceforge.net/projects/phpqrcode/ ...
- Tools:实现ping操作带时间戳【windows+linux】
[windows下]: ping.vbs Dim args, flag, unsuccOut args="" otherout="" flag= If WScr ...
- mysql 5.5数据导入5.7 Failed - Error on Table user - 1067 - Invalid default value for 'CREATE_date'
表结构是这样 DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (....省略了一些无关紧要的字段 `CREATE_DATE_` timestamp NO ...