【JavaEE】_Spring MVC项目获取Header

目录

[1. 使用Servlet原生方法获取Header](#1. 使用Servlet原生方法获取Header)

[2. 使用Spring注解获取Header](#2. 使用Spring注解获取Header)


1. 使用Servlet原生方法获取Header

.java文件内容如下:

java 复制代码
package com.example.demo.controller;

import com.example.demo.Person;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

@RequestMapping("/Para")
@RestController
public class ParaController {
    @RequestMapping("/getHeader")
    public String getHeader(HttpServletRequest request){
        String userAgent = request.getHeader("User-Agent");
        return "userAgent: "+userAgent;
    }
}

运行启动浏览器,页面如下:

2. 使用Spring注解获取Header

可以使用Spring 提供的注解@RequestHeader获取HTTP请求中的header;

.java文件内容如下:

java 复制代码
package com.example.demo.controller;

import com.example.demo.Person;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

@RequestMapping("/Para")
@RestController
public class ParaController {
    @RequestMapping("/getHeader2")
    public String getHeader(@RequestHeader("User-Agent") String userAgent){
        return "userAgent: "+userAgent;
    }
}

运行启动后,使用浏览器访问对应URL:

可以使用Fiddler抓包,查看HTTP请求信息:

可见二者对应;

注:1.注意:@RequestHeader注解的参数需与HTTP请求中的header的键名一致:

如现将后端的参数名改为userAgent而非User-Agent,

java 复制代码
    @RequestMapping("/getHeader2")
    public String getHeader(@RequestHeader("userAgent") String userAgent){
        return "userAgent: "+userAgent;
    }

重新启动运行:

可见访问错误;

相关推荐
Je1lyfish3 小时前
CMU15-445 (2026 Spring) Project#2 - B+ Tree
linux·数据结构·数据库·c++·sql·spring·oracle
生产队队长3 小时前
SpringBoot3:ApplicationAvailability监控应用程序可用性状态[官方文档]
java·spring·mybatis
leikooo4 小时前
在 Spring AI 中自定义 Tool 调用返回值——实现 TodoList 提醒注入
spring
码喽7号5 小时前
Springboot学习五:MybatisPlus的快速上手
spring boot·学习·spring
weixin_704266055 小时前
事务管理全解析:从ACID到Spring实现
java·数据库·spring
YmaxU6 小时前
SpringAIAlibaba学习使用 ---Graph
java·学习·spring·ai
StackNoOverflow7 小时前
Spring整合MyBatis与事务管理详解(第三部分)
java·spring
NE_STOP7 小时前
SpringCloud--快速上手Eureka注册中心
spring
老友@7 小时前
微服务全面解析:架构、组件与底层原理
数据库·spring·oracle
014-code8 小时前
Spring 事务原理深度解析
java·数据库·spring·oracle