如何检查HttpServletRequest是否包含Java中的密钥(使用spring引导)
我想知道如何检查请求头中是否存在键如何检查HttpServletRequest是否包含Java中的密钥(使用spring引导),java,spring-boot,Java,Spring Boot,我想知道如何检查请求头中是否存在键“设备” 注意:不希望使用getHeaderName,它返回此请求包含的所有头名称的枚举,并对其进行迭代 getParameterMap().containsKey(“设备”)在这里不工作。来自JavaDoc,用于: 如果请求不包含指定名称的标头,则此 方法返回null 因此,基本的空检查就足够了: HttpServletRequest httpReq = (HttpServletRequest) request; if (httpReq.getHeader(
“设备”
注意:不希望使用getHeaderName
,它返回此请求包含的所有头名称的枚举,并对其进行迭代
getParameterMap().containsKey(“设备”)
在这里不工作。来自JavaDoc,用于:
如果请求不包含指定名称的标头,则此
方法返回null
因此,基本的空检查就足够了:
HttpServletRequest httpReq = (HttpServletRequest) request;
if (httpReq.getHeader("device").equals("web1")) {
chain.doFilter(request, response);
}
稍微阅读一下行与行之间的内容,如果您希望接受一个必需的
设备
头,那么您可以在REST调用中使用注释对其进行编码。例如:
boolean deviceHeaderExists = httpReq.getHeader("device") != null;
为什么不能使用
getHeader(“设备”)
并查看它是否为空?谢谢。这个有用!!
@GetMapping("/something")
public void doSomething(@RequestHeader("device") @NotNull String deviceName) {
// your logic here
}