HTTP协议采用的是请求、响应模型,客户端发出请求,服务器响应结果。在传输中的消息资源包括header和body两部分。前几节我们学习了获取body参数、URL、URITemplate参数的方法。今天我们学习如何获取header部分的数据。SpringMVC提供了@RequestHeader注解用于映射请求头数据到Controller方法的对应参数。
小博老师先跟大家介绍一下请求头(header)数据主要有哪些:
使用@RequestHeader注解与使用@RequestParam一样,在方法参数前加上注解即可,如下面的示例:
@RequestMapping("/boweifeng")
public void queryUser(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive") long keepAlive) {
}
该示例把请求头(header)部分的 Accept-Encoding的值,绑定到了参数encoding上了, 把请求头中Keep-Alive的值绑定到参数keepAlive上。
注意事项:
如果指定的参数在请求头中不存在,Spring将会初始化该参数为null。如果想要设置默认值,可以使用defaultValue指定,如下面红色部分标识。
public void queryUser(
@RequestHeader(value="Accept-Encoding",defaultValue="UTF-8") String encoding,
@RequestHeader("Keep-Alive") long keepAlive) {
}