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 :前端控制 ...
随机推荐
- lenovo 笔记本ideapad 320c-15改装win7问题
lenovo 笔记本ideapad 320c-15改装win7问题: 去联想售后官网下载个Lenovo Utility驱动安装上,正常重启下,按Fn+F7,单击无线就能够开启无线网卡.Fn+F11.F ...
- 报错:ERROR ParcelUpdateService:com.cloudera.parcel.components.ParcelDownloaderImpl: Unable to retrieve remote parcel repository manifest
报错背景: CDH断电后重启失败,解决了种种错误之后,重启成功,但是重启之后的服务器没有任何进程, 查看/opt/cm-5.15.1/log/cloudera-scm-server/cloudera- ...
- python之路——22
学习内容 1.初识面向对象 类:抽象的,模子 对象:具体的,根据类规范 代码精简,修改方便,属性规范2.对象 查看属性 调用方法 __dict__,增删改查,通过字典语法进行3.类名 1.实例化 2. ...
- mybatis关于ORM的使用以及设计(一)[ORM的初始化]
ORM WIKI中的解释.画重点 Object-relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is ...
- MVC和WebApi的区别:
1.mvc 和WebApi: 区别: a.MVC是建立网站的一种框架,倾向于返回用户的页面请求:webApi倾向于返回用户数据请求 b.mvc直接继承system.mvc.controller:web ...
- tomcat和iis共用80端口的简明手册
对于使用tomcat-connector实现iis与tomcat实现80端口共用的问题,网上的信息异常混乱,很多地方误人子弟,浪费时间.本文给出简明手册式的做法: 首先列出我们需要做的事项: 1. ...
- Jmeter连接数据库方式
关系型数据库: 1.mysql: 方式:Database URL:jdbc:mysql://localhost:port/DBname?user=**&password=**&allo ...
- 记录Redis使用中遇到的两个问题(原子性及数据完整性)
1.使用Redis作为分布式锁的原子性问题 原方案: ① SETNX $LOCK_BUSI_KEY $REQ_ID ② EXPIRE $LOCK_BUSI_KEY $LOCK_TIME 问题: 使用S ...
- kolla queens on centos7.5 -all in one
目录 环境准备 开始配置 快照,快照,快照 pull镜像并部署 登录配置OpenStack 环境准备 我这里用workstation创建了一个虚拟机,安装centos7.5 mini系统,这台虚拟机上 ...
- Docker安装ElasticSearch及kibana
什么是Kibana? Kibana 是一个设计出来用于和 Elasticsearch 一起使用的开源的分析与可视化平台,可以用 kibana 搜索.查看.交互存放在Elasticsearch 索引里的 ...