从@RequestHeader 与 HttpServletRequest 获取标头

Sha*_*ake 1 spring spring-mvc

@RequestHeaderannotation读取 header 数据与从annotation读取头数据有什么区别HttpServletRequest

dev*_*per 5

使用 Spring 的优点@RequestHeader是它会自动抛出一个异常,如 HTTP Status 400 - Missing request header 'X' for method parameter of type,如果头没有在输入请求中发送(通过设置required=true)。示例用法如下所示:

@RequestMapping(method=RequestMethod.GET)
public String users(@RequestHeader(required=true)String myHeader, Model model) {
    //your Code
}
Run Code Online (Sandbox Code Playgroud)

如果使用@RequestHeader,还可以设置标头的默认值,可以参考这里

我们需要手动检查 header value 的条件!=null,抛出异常或设置默认值,如果使用HttpServletRequest,这将使您的代码变得冗长。