文章目录
- 一. Maven
- 二. SpringBoot
- 三. Spring MVC
- 四. MVC注解
- 1. @RequestMapping
- 2. @RequestParam
- 3. @PathVariable
- 4. @RequestPart
- 5. @CookieValue
- 6. @SessionAttribute
- 7. @RequestHeader
- 8. @RestController
- 9. @ResponseBody
 
- 五. 请求
- 六. 响应
一. Maven
Maven是⼀个项⽬管理⼯具。基于POM(Project Object Model,项⽬对象模型)的概念,Maven可以通
 过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的项⽬管理⼯具软件。
 ⼤⽩话: Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包
二. SpringBoot
Spring Boot 是为了快速开发 Spring ⽽诞⽣的, Spring Boot 具备:
 • Spring Boot 提供了启动添加依赖的功能, 可以快速集成框架.
 • 内置web服务器,⽆需配置 Tomcat 等 Web服务器,直接运⾏和部署程序.
 • 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发.
 • ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点
三. Spring MVC
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的
 正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring
 MVC".
MVC 是 Model View Controller 的缩写,它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分
 为模型、视图和控制器三个基本部分
 
• View(视图) 指在应⽤程序中专⻔⽤来与浏览器进⾏交互,展⽰数据的资源.
 • Model(模型) 是应⽤程序的主体部分,⽤来处理程序中数据逻辑的部分.
 • Controller(控制器)可以理解为⼀个分发器,⽤来决定对于视图发来的请求,需要⽤哪⼀个模型
 来处理,以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型
Spring MVC 是⼀个实现了 MVC 模式的 Web 框架
 Spring Boot 只是实现Spring MVC的其中⼀种⽅式⽽已
面试题:
Spring, Spring Boot 和Spring MVC的关系以及区别
最后⼀句话总结: Spring MVC和Spring Boot都属于Spring,Spring MVC 是基于Spring的⼀个
MVC 框架,⽽Spring Boot 是基于Spring的⼀套快速开发整合包
四. MVC注解
1. @RequestMapping
用于路由映射
 是类注解也是方法注解
 
 前端可以通过…/request/param1 来访问, 传递参数或者接收返回的参数
 可以指定前端传递数据的方法:
 
2. @RequestParam
用于前端和后端的映射
 前端传参的数据名和后端接收的数据名不匹配
 并且可以指定是否是必传项, 不传会报错
 
 将前端的userName映射到后端的name上
3. @PathVariable
@PathVariable 翻译:路径变量 获取URL中的路径articleId作为参数传递
 
4. @RequestPart
用于映射文件
 
5. @CookieValue
获取cookie中的某个值
 
6. @SessionAttribute
获取session中的某个值
 
7. @RequestHeader
获取header中的某个值
 
8. @RestController
响应的类型是数据
 是类注解, 也是方法注解, 修饰类时, 表示类中所有方法都返回的是数据
 @RestController = @Controller + @ResponseBody
 (@Controller后续介绍)
9. @ResponseBody
方法注解, 表示此方法, 返回的是数据
五. 请求
-  传递数据 
 前端传递数据时, 最好使用包装类来接收
 如果前端没有传递数据, 会默认为null, 而不会报错
  
 如果传入的数据的名字和参数名字不匹配, 使用@RequestParam
-  传递对象 
  
 直接通过url或者body的方式传递和对象中对应属性的名字的内容即可
-  传递数组 
  
 传递的名字用数组名即可, 传多条相同名字的数据
-  传递集合 
  
 传多条相同名字的数据, 默认为数组, 接收不到集合, 需要用@RequestParam
-  接收url路径作为参数 
  
 需要搭配@PathVariable 翻译:路径变量 获取URL中的路径articleId作为参数传递
  
-  传递文件 
  
 MultipartFile是Spring框架提供的一个接口,用于处理HTTP请求中的文件上传
 MultipartFile提供transferTo方法, 将MultipartFile转成File
 需要搭配@RequestPart方法 用于映射文件
-  获取Cookie 
 方法一: 使用HttpServletRequest
 HttpServletRequest 这个类可以获取到请求中的所有东西
  
 方法二:使用@CookieValue
  
-  创建session 
 方法一:使用HttpSerletRequest
  
 方法二: 使用HttpSession
  
-  获取session 
 方法一: 使用HttpSerletRequest
  
 方法二: 使用HttpSession
  
 方法三: 使用@SessionAttribute
  
-  获取header 
 方法一: 使用HttpServletRequest
  
 方法二: 使用@RequestHeader
  
六. 响应
类使用@Controller修饰, 默认返回的是视图
 如果使用@RestController修饰, 那么返回数据
 @RestController = @Controller + @ResponseBody
- 响应html视图
  
- 响应数据
 类使用@Controller修饰
  
- 响应html数据
  
- 响应JSON数据
 返回对象即可, Spring会转成json
  
- 设置响应状态码
 使用HttpServletResponse
  



