@RequestHeader
注解用于从 HTTP 请求的头部获取特定的信息,并将其注入到方法参数或控制器类的属性中。
@RequestHeader
注解可以应用于方法的参数或控制器类的属性上。它有以下常用的参数:
-
value
:指定要获取的请求头的名称。可以使用该参数来指定不同的请求头名称,例如@RequestHeader("User-Agent")
。 -
required
:指定请求头是否为必需,默认为true
。如果设置为true
,而请求中没有包含该请求头,将会抛出异常。如果设置为false
,则在请求中没有包含该请求头时,方法参数或属性将会被设置为null
。 -
defaultValue
:指定当请求中没有包含该请求头时的默认值。如果没有设置默认值且请求中没有包含该请求头,方法参数或属性将会被设置为null
。
下面是一个示例,演示了如何使用 @RequestHeader
注解:
@Controller
@RequestMapping("/example")
public class ExampleController {
@GetMapping("/header-info")
public String getHeaderInfo(@RequestHeader("User-Agent") String userAgent) {
// 处理获取到的 User-Agent 信息
return "header-info";
}
}
在上述示例中,getHeaderInfo
方法使用 @RequestHeader
注解将名为 "User-Agent" 的请求头的值注入到 userAgent
参数中。然后,你可以在方法体中使用 userAgent
进行进一步的处理。
这样,当客户端发送请求时,如果请求头中包含 "User-Agent",Spring MVC 将会将其值传递给 userAgent
参数。如果请求头中没有包含该请求头,将会抛出异常(除非将 required
参数设置为 false
)。
这段代码是一个控制器方法,用于查询用户信息。它接收两个参数:id
和 truth
。
-
@PathVariable("id") Long id
:这是一个路径变量参数,使用@PathVariable
注解将 URL 中的占位符参数 "id" 绑定到id
参数上。这样,当客户端请求/example/queryById/123
时,其中的 "123" 将被绑定到id
参数上,作为方法的输入。 -
@RequestHeader(value = "Truth", required = false) String truth
:这是一个请求头参数,使用@RequestHeader
注解将名为 "Truth" 的请求头的值绑定到truth
参数上。value
参数指定了要获取的请求头的名称,即 "Truth"。required
参数设置为false
,表示该请求头是可选的,如果请求中没有包含该请求头,truth
参数将被设置为null
。
通过 @RequestHeader
注解,你可以方便地获取请求头的值,并在控制器方法中进行相应的处理。