【JavaEE】_Spring MVC项目获取Header
目录
1. 使用Servlet原生方法获取Header
2. 使用Spring注解获取Header
1. 使用Servlet原生方法获取Header
.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文件内容如下:
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,
@RequestMapping("/getHeader2")public String getHeader(@RequestHeader("userAgent") String userAgent){return "userAgent: "+userAgent;}
重新启动运行:
可见访问错误;