以下所有用法案例均来源于下面博文整理,详解请参考该博文
25.SpringMVC系列第25篇:@RequestHeader详解
前端
$(function() {
fetch('项目路径' + '/requestHeaderTest/init4', {
method: 'GET',
// 请求头
headers: {
name: "fengYeHong",
age: 18,
// 一个请求头包含多个值
addressList: ["address1", "address2"]
}
})
});
一. 获取指定的请求头
import org.springframework.web.bind.annotation.RequestHeader;
@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {
@GetMapping("/init1")
public void init1(@RequestHeader(value = "name", required = false, defaultValue = "ready") String name,
@RequestHeader(value = "age") int age,
// 默认为true,如果在前端可能不指定的话,需要手动改为非必须请求头,否则报错
@RequestHeader(value = "sex", required = false) String sex,
// 一个请求头中有多个值,使用List来接收
@RequestHeader(value = "addressList") List<String> addressList) {
System.out.println(name);
System.out.println(age);
System.out.println(sex);
System.out.println(addressList);
}
}
二. 使用Map<String, String>接收所有请求头
import org.springframework.web.bind.annotation.RequestHeader;
@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {
@GetMapping("/init2")
public void init2(@RequestHeader Map<String, String> headerMap) {
// 使用Map接收所有的请求头
System.out.println(headerMap);
// js中使用header名为addressList,使用map接收后需要使用addresslist
System.out.println(headerMap.get("addresslist")); // address1,address2
}
}
三. 使用MultiValueMap接收所有请求头
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.util.MultiValueMap;
@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {
@GetMapping("/init3")
public void init3(@RequestHeader MultiValueMap multiValueMap) {
// 使用MultiValueMap来接收所有的请求头
System.out.println(multiValueMap);
}
}
四. 使用HttpHeaders接收所有请求头
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.http.HttpHeaders;
@Controller
@RequestMapping("/requestHeaderTest")
public class RequestHeaderTest {
@GetMapping("/init4")
public void init4(@RequestHeader HttpHeaders httpHeaders) {
// 使用HttpHeaders接收所有的请求头
Map<String,List<String>> result = new LinkedHashMap<>(httpHeaders);
System.out.println(result);
}
}