硬核!图文结合看懂SpringMVC

目录

1.什么是SpringMVC?

2.SpringMVC的作用

3.SpringMVC的原理

4.MVC模式

5.SpringMVC的执行流程和原理

6.如何学习SpringMVC?

7.SpringMVC的创建和连接

   7.1创建 Spring MVC 项目

   7.2@RequestMapping 注解介绍

   7.3@RequestMapping 是 post 还是 get 请求?

   7.4@GetMapping 和 PostMapping

8.获取参数

   8.1传递单个参数

   8.2传递对象

   8.3表单参数传递/传递多个参数(非对象)

   8.4后端参数重命名(后端参数映射)

   8.5设置参数必传@RequestParam

   8.6@RequestBody 接收JSON对象

   8.7上传文件@RequestPart

   8.8获取Cookie/Session/header


1.什么是SpringMVC?

我们可以从官网看下对于SpringMVC的描述:

Spring Web MVC :: Spring Framework

翻译为中文:

Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从一开始就包含在 Spring 框架中。它的 正式名称“Spring Web MVC”来自其源模块的名称(Spring-webmvc),但它通常被称为“Spring MVC”。 

从上述定义我们可以得出两个关键信息:

1. Spring MVC 是一个 Web 框架。

2. Spring MVC 是基于 Servlet API 构建的。

2.SpringMVC的作用

Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
MVC模式(Model-View-Controller):解决页面代码和后台代码的分离。

3.SpringMVC的原理

在没有使用SpringMVC之前我们都是使用Servlet在做Web开发。但是使用Servlet开发在接收请求参数,数据共享,页面跳转等操作相对比较复杂。servlet是java进行web开发的标准,既然springMVC是对servlet的封装,那么很显然SpringMVC底层就是Servlet,SpringMVC就是对Servlet进行深层次的封装。

4.MVC模式

在上面我们提到了MVC模式,那么到底什么是MVC模式呢?

MVC 是 Model View Controller 的缩写,它是软件工程中的一种软件架构模式,它把软件系统分为模型model(javabean)、视图view(jsp/img)、控制器Controller(Action/servlet)三个基本部分。

我们可以这样理解:

控制器存在的目的就是为了保证模型视图的一致性,当模型发生改变时,控制器可以把模型中的新内容更新到视图中。

1.Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数 据。

2.View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

3.Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户 输入,并向模型发送数据。 

5.SpringMVC的执行流程和原理

上面的图只是展示出了 SpringMVC 的 MVC 三部分的处理情况

那么SpringMVC涉及到了哪些组件呢?以及SpringMVC执行流程和原理到底是什么呢?

 --涉及组件分析:

1、前端控制器DispatcherServlet由框架提供,在web.xml中配置。
作用:接收请求,响应结果,相当于转发器,中央处理器。
 
2、处理器映射器HandlerMapping)由框架提供。
作用:根据请求的url查找Handler(处理器/Controller),可以通过XML和注解方式来映射。
 
3、处理器适配器HandlerAdapter由框架提供。
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler中的方法。
 
4、处理器Handler(也称之为Controller,需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。
作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器。
 
5、视图解析器ViewResolver由框架提供。
作用:进行视图解析,把逻辑视图解析成真正的物理视图。 
SpringMVC框架支持多种View视图技术,包括:jstlView、freemarkerView、ThymeleafView等。
 
6、视图View(需要工程师开发)
作用:把数据展现给用户的页面
View是一个接口,实现类支持不同的View技术(jsp、freemarker、pdf等)

--SpringMVC执行流程:

1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet收到请求调用处理器映射器HandlerMapping。
3.处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
4.DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
5.执行处理器Handler(Controller,也叫页面控制器)。
6.Handler执行完成返回ModelAndView
7.HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9.ViewReslover解析后返回具体View
10.DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
11.DispatcherServlet响应用户。

6.如何学习SpringMVC?

说了这么多,我们到底应该怎样学习SpringMVC呢?

学习 Spring MVC 我们需要掌握以下 3 个功能:

1. 连接的功能:将用户(浏览器)和 Java 程序连接起来,也就是访问一个地址能够调用到我们的 Spring 程序。

2. 获取参数的功能:用户访问的时候会带一些参数,在程序中要想办法获取到参数。

3. 输出数据的功能:执行了业务逻辑之后,要把程序执行的结果返回给用户。

对于 Spring MVC 来说,掌握了以上 3 个功能就相当于掌握了 Spring MVC。

7.SpringMVC的创建和连接

Spring MVC 项目创建和 Spring Boot 创建项目相同(Spring MVC 使用 Spring Boot 的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北~笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值