SpringMVC(8):获取 Header(报头)
文章目录
- SpringMVC(8):获取 Header(报头)
- 观前提醒
- 1.为什么要获取 Header(报头)
- 2. 获取 Header(报头)
-
- 2.1 第一种方式:HttpServletRequest
- 2.2 第二种方式:@RequestHeader注解
- 2.3 总结:
- 3. 总结:
观前提醒
说明:这篇博客代码,你需要自己去写。 定义一个类,使用 @RequestMapping 定义好 资源路径(类路径 + 方法路径),然后自己使用 postman 进行访问,测试。
1.为什么要获取 Header(报头)
获取 Header 中的属性主要是为了获取请求元数据,如认证信息(如 Token)、内容类型、客户端信息、缓存控制策略等,这些信息用于身份验证、数据处理、请求控制等核心业务逻辑。
比如:
用途:统计广告点击次数
用途:根据不同的设备,不同的浏览器,提供不同的页面效果展示
2. 获取 Header(报头)
HttpServletRequest , HttpServletResponse 是Servlet提供的两个类,是Spring MVC方法的内置对象。需要时直接在方法中添加声明即可。
HttpServletRequest 对象代表客户端的 HTTP请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中。 通过这个对象提供的方法,可以获得客户端请求的所有信息。
HttpServletResponse 对象代表服务器的 HTTP响应。HTTP响应的信息都在这个对象中, ⽐如向客户端发送的数据, 响应头, 状态码等。 通过这个对象提供的方法, 可以获得服务器响应的所有内容 。
所以,我们获取 Header(报头)中的信息,都是使用这两个类:HttpServletRequest , HttpServletResponse。
获取 Header(报头)有两种方式:
2.1 第一种方式:HttpServletRequest
代码:
@RequestMapping("/h1")
public String getHeader1(HttpServletRequest request, HttpServletResponse response) {
// 从请求报头中获取 User-Agent
String userAgent = request.getHeader("User-Agent");
return "请求报头获取:" + userAgent + "\\n";
}

2.2 第二种方式:@RequestHeader注解
@RequestHeader注解: 是 Spring Framework 中的一个注解,用于将 HTTP 请求头(Request Headers)中的值绑定到控制器方法的参数上。
特点:一个 @RequestHeader注解,一次只能获取 Header 中的一个参数。
代码:
@RequestMapping("/h2")
public String getHeader2(@RequestHeader("User-Agent") String userAgent){
return "从请求报头中获取:" + userAgent;
}

2.3 总结:
更推荐使用 HttpServletRequest ,只需要在 方法 的参数中写一次,就可以获取到 请求头 中的所有属性了。
3. 总结:
获取 Header 中的属性主要是为了获取请求元数据,如认证信息(如 Token)、内容类型、客户端信息、缓存控制策略等,这些信息用于身份验证、数据处理、请求控制等核心业务逻辑。
获取 Header(报头)有两种方式:
最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢! 下一篇博客:SpringMCV(9)响应:返回静态页面 & 返回数据


