2017-12-22 3 views
1
HttpServletRequest httpReq = (HttpServletRequest) request; 

if (httpReq.getHeader("device").equals("web1")) { 
    chain.doFilter(request, response); 
} 

(봄 부팅 사용) HttpServletRequest의 자바에서 키가 포함되어 있는지 여부를 확인하려면?어떻게 내가 키 <code>"device"</code> 요청 헤더에 존재하는지 여부를 확인하는 방법을 알고 싶어

참고 : 을 사용하지 마십시오.이 요청에 포함 된 모든 헤더 이름의 열거를 반환하고이를 반복합니다.

getParameterMap().containsKey("device")이 여기에서 작동하지 않습니다. HttpServletRequest.getHeader(String name)에 대한 JavaDoc을에서

+0

왜 'getHeader ("device")'를 사용하여 null인지 확인하십시오. – pvpkiran

+0

감사합니다. 이 작품! – Fida

답변

2

:

요청이 지정된 이름의 헤더가 포함되어 있지 않은 경우,이 방법은 null를 반환합니다.

그래서 기본적인 널 (null) 검사가 충분하다 : 당신이 필수 device 헤더를 받아들이 찾고 있다면

boolean deviceHeaderExists = httpReq.getHeader("device") != null; 
+0

정말 고마워요 ... 이것은 잘 작동합니다 !! – Fida

0

행간을 읽는 조금, 당신은 당신의 REST에서 주석과 그를 코딩 할 수 있습니다 요구. 예 :

@GetMapping("/something") 
public void doSomething(@RequestHeader("device") @NotNull String deviceName) { 
    // your logic here 
} 
관련 문제