目录
- 1、SpringMVC 处理请求
- 1.1、HTTP 请求报文
- 1.2、获取 URL 中参数 @PathVariable
- 1.3、获取请求头数据
- 1.3.1、传统获取 Header/Cookie
- 1.3.2、获取 Header—@RequestHeader
- 1.3.3、获取 Cookie—@CookieValue
- 1.3.4、Session 的存储和获取—@SessionAttribute
- 1.4、获取请求数据
- 1.4.1、请求数据的类型
- 1.4.2、方法参数不带任何注解
- 1.4.3、方法参数带@RequestParam
- 1.4.4、方法参数带@RequestBody
- 1.4.5、接收文件
1、SpringMVC 处理请求
1.1、HTTP 请求报文
请求方法 请求路径 版本号
请求头
(空行)
请求正文
1.2、获取 URL 中参数 @PathVariable
url 路径中,某个部分是动态变化的,可以绑定在变量中。
@RequestMapping(”xxx/{路径变量名称}“)
public 数据类型 xxx(@PathVariable 数据类型 路径变量名称)
请求路径中的路径变量类型需要满足代码中定义的路径变量类型,例如上述例子的路径变量类型是 Integer,那么在请求路径中只能是整型,否则会出现 400 报错
1.3、获取请求头数据
1.3.1、传统获取 Header/Cookie
1.3.2、获取 Header—@RequestHeader
当客户端发送 HTTP 请求时,通常会发送请求头,可以通过 @RequestHeader 注解获取请求头中某个字段的值。
@RequestHeader(“请求头的字段名”)
1.3.3、获取 Cookie—@CookieValue
由于 Cookie 中有多个字段,使用 getCookies 方法获取的是数组,因此可以通过 @CookieValue 注解获取请求头中 Cookie 的某个字段的值。Cookie:字段名=值(可以有多个)
@CookieValue(“Cookie的字段名”)
1.3.4、Session 的存储和获取—@SessionAttribute
模拟登录,登录的用户叫 abc
获取 session 中的用户,@SessionAttribute(”Session 字段名“)(也可以利用 session.getAttribute(字段名)获取)
1.4、获取请求数据
获取请求数据,都是在 Controller 请求方法的方法参数来绑定
1.4.1、请求数据的类型
- url 的 ?后面的 queryString:字段名=值&字段名=值。
- urlencoded 格式,又叫form格式,或者是 x-www-form-urlencoded 格式,由键值对组成:字段名=值&字段名=值。
- JSON 格式:由两种基本数据结构组成:对象和数组,对象是键值对的集合,数据是有序的值集合。支持字符串、数字、布尔值、数组、对象和空值这几种数据类型。
- form-data:多个字段,每个字段都可以是任意格式,在上传文件时非常适用。
1.4.2、方法参数不带任何注解
1.4.3、方法参数带@RequestParam
@RequestParam :用于将指定的请求参数赋值给方法中的形参。有以下三个属性
- value:请求参数名(必须配置),必须和前端传递的参数名一致
- required:是否必需,默认为 true,即必须存在该字段
- defaultValue:默认值,如果设置了默认值,required 无论是否配置值均为 false
只能使用简单类型。
1.4.4、方法参数带@RequestBody
接受 JSON 格式的数据。如果接收的是 JSON 对象,是把 JSON 每个字段,设置到对象属性,如果没有这个字段,就不设置。
1.4.5、接收文件
接受文件使用 SpringMVC 的文件上传类 MultipartFile,有三种方法接收:
- 可以不带注解,此时文件是可选字段
- @RequestParam 注解,默认必须存在该字段
- @RequestPart 注解,默认必须存在该字段