欢迎光临
我们一直在努力

SpringMVC(8):获取 Header(报头)

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)、内容类型、客户端信息、缓存控制策略等,这些信息用于身份验证、数据处理、请求控制等核心业务逻辑。

比如:

  • reference:该页面的上一级页面的 URL
  • 用途:统计广告点击次数

  • User—Agent:表示用户的操作系统信息,浏览器版本
  • 用途:根据不同的设备,不同的浏览器,提供不同的页面效果展示

    2. 获取 Header(报头)

    HttpServletRequest , HttpServletResponse 是Servlet提供的两个类,是Spring MVC方法的内置对象。需要时直接在方法中添加声明即可。

    HttpServletRequest 对象代表客户端的 HTTP请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中。 通过这个对象提供的方法,可以获得客户端请求的所有信息。

    HttpServletResponse 对象代表服务器的 HTTP响应。HTTP响应的信息都在这个对象中, ⽐如向客户端发送的数据, 响应头, 状态码等。 通过这个对象提供的方法, 可以获得服务器响应的所有内容 。

    所以,我们获取 Header(报头)中的信息,都是使用这两个类:HttpServletRequest , HttpServletResponse。

    获取 Header(报头)有两种方式:

  • HttpServletRequest
  • @RequestHeader注解
  • 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(报头)有两种方式:

  • HttpServletRequest
  • @RequestHeader注解
  • 最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢! 下一篇博客:SpringMCV(9)响应:返回静态页面 & 返回数据

    赞(0)
    未经允许不得转载:171主机测评 » SpringMVC(8):获取 Header(报头)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址