47.2.3. HTTP 메시지 헤더에서 데이터 삽입
47.2.3.1. 개요
일반적으로 요청 메시지의 HTTP 헤더는 메시지에 대한 일반 정보, 전송 중 처리 방법, 예상 응답에 대한 세부 정보를 전달합니다. 일반적으로 몇 가지 표준 헤더가 인식되고 사용되는 반면 HTTP 사양에서는 이름/값 쌍을 HTTP 헤더로 사용할 수 있습니다. JAX-RS API는 HTTP 헤더 정보를 리소스 구현에 삽입하는 쉬운 메커니즘을 제공합니다.
가장 일반적으로 사용되는 HTTP 헤더 중 하나는 쿠키입니다. 쿠키를 통해 HTTP 클라이언트 및 서버는 여러 요청/응답 시퀀스에서 정적 정보를 공유할 수 있습니다. JAX-RS API는 리소스에서 리소스 구현에 직접 데이터를 삽입하는 주석을 제공합니다.
47.2.3.2. HTTP 헤더에서 정보 삽입
javax.ws.rs.HeaderParam
주석은 HTTP 헤더 필드의 데이터를 매개 변수, 필드 또는 빈 속성에 삽입하는 데 사용됩니다. 값을 추출하여 리소스 구현에 삽입되는 HTTP 헤더 필드의 이름을 지정하는 단일 매개 변수가 있습니다. 관련 매개변수, 필드 또는 빈 속성은 “지원되는 데이터 유형” 에 설명된 데이터 유형을 준수해야 합니다.
If-Modified-Since 헤더 삽입 HTTP If-Modified-Since
헤더의 값을 클래스의 oldestDate
필드에 삽입하는 코드를 표시합니다.
If-Modified-Since 헤더 삽입
import javax.ws.rs.HeaderParam; ... class RecordKeeper { ... @HeaderParam("If-Modified-Since") String oldestDate; ... }
47.2.3.3. 쿠키에서 정보 삽입
쿠키는 특별한 유형의 HTTP 헤더입니다. 첫 번째 요청의 리소스 구현에 전달되는 하나 이상의 이름/값 쌍으로 구성됩니다. 첫 번째 요청 후 쿠키는 공급자와 각 메시지 간에 소비자 간에 전달됩니다. 요청을 생성하므로 소비자만 쿠키를 변경할 수 있습니다. 쿠키는 일반적으로 여러 요청/응답 시퀀스에서 세션을 유지하고, 사용자 설정 및 유지할 수 있는 기타 데이터를 저장하는 데 사용됩니다.
javax.ws.rs.CookieParam
주석은 쿠키 필드에서 값을 추출하여 리소스 구현에 삽입합니다. 값을 추출할 쿠키 필드의 이름을 지정하는 단일 매개 변수를 사용합니다. “지원되는 데이터 유형” 에 나열된 데이터 유형 외에도 @
로 장식되는 엔티티도 쿠키 객체가 될 수 있습니다.
Cookie
Param
예 47.6. “쿠키 삽입” 처리
쿠키의 값을 CB
클래스의 필드에 삽입하는 코드를 표시합니다.
예 47.6. 쿠키 삽입
import javax.ws.rs.CookieParam; ... class CB { ... @CookieParam("handle") String handle; ... }
47.2.3.4. 오류 처리
HTTP 메시지 삽입 주석 중 하나를 사용하여 데이터를 삽입하려고 할 때 오류가 발생하면 WebApplicationException 예외를 래핑하는 원래 예외가 생성됩니다. WebApplicationException 예외 상태가 400
으로 설정되어 있습니다.