一、前端知识概述
说明:
1、Headers
和Payload
为前端传给后端的请求头
和请求参数
信息。Preview
和Response
为后端返回的数据。
2、Payload标签内为前端传给后端的参数
。其中,Query String Parameters中为问号传参,对应后端@RequestParam方式
;Request Payload为form-data传参,对应后端@RequestBody方式
。
二、HttpServletRequest接口概述
概述:HttpServletRequest接口主要用于获取前端传过来的数据(包括请求头Headers和请求参数Payload)
。该接口继承ServletRequest
,因此在调用给接口方法时,可以看下ServletRequest接口中有没有我们想要的方法。有两种
方法来创建该接口(实现类,因为接口无法创建对象)实例:
- 直接构造实例
HttpServletRequest httpServletRequest;
说明:这种写法可以直接作为方法入参。此外,如果作为类的属性,需要添加
@Autowired
注解。
- 通过作为方法返回值构造
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = requestAttributes.getRequest();
三、HttpServletRequest内部方法简介
- getCookies():Cookie[]
主要用于获取前端传过来的Cookie值,该值保存于请求头中,一起传给后端。 - getHeader(String var1):String
获取请求头中的数据。 - getParameter(String var1):String
获取请求参数(Payload中的参数)
。获取顺序为:URI (Query String Parameters)-> 请求体(Request Payload)
,如果uri和请求体中包含同名的参数名,则只能获取到uri中的参数值,无法获取请求体中的参数值。 - getParameterValues(String var1):String[]
与3类似,区别在于如果URI和请求体中包含同名参数名,两者的参数值均可被获取。 - setAttribute(String var1, Object var2):void
用于设置属性及其值。 - getAttribute(String var1):Object
只能收到程序用setAttribute传过来的值。