Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查HttpServletRequest是否包含Java中的密钥(使用spring引导)_Java_Spring Boot - Fatal编程技术网

如何检查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
}