728x90
반응형
[스프링MVC 35] 스프링 MVC 기본 기능: 요청 매핑 - API 예시 (tistory.com)
매핑 방법을 이해했으니, HTTP 요청이 보내는 데이터들을 스프링 MVC로 어떻게 조회하는지 알아보자.
애노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 지원한다.
먼저, HTTP 헤더 정보를 조회하는 방법을 알아보자.
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpMethod;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
@Slf4j
@RestController
public class RequestHeaderController {
@RequestMapping("/headers")
public String headers(HttpServletRequest request,
HttpServletResponse response,
HttpMethod httpMethod, //HTTP 메서드를 조회
Locale locale, // Locale 정보를 조회
@RequestHeader MultiValueMap<String, String> headerMap, //모든 HTTP 헤더를 MultiValueMap 형식으로 조회
@RequestHeader("host") String host, //특정 HTTP 헤더를 조회
@CookieValue(value = "myCookie", required = false) String cookie //특정 쿠키를 조회
) {
log.info("request={}", request);
log.info("response={}", response);
log.info("httpMethod={}", httpMethod);
log.info("locale={}", locale);
log.info("headerMap={}", headerMap);
log.info("header host={}", host);
log.info("myCookie={}", cookie);
return "ok";
}
}
- @RequestHeader MultiValueMap<String, String> headerMap
- 모든 HTTP 헤더를 MultiValueMap 형식으로 조회한다.
- @RequestHeader("헤더이름") String host
- 특정 HTTP 헤더를(1개) 조회한다.
- 속성
- 필수 값 여부: required
- 기본 값 속성: defaultValue
- @CookieValue(value = "myCookie", required = false) String cookie
- 특정 쿠키를 조회한다.
- 속성
- 필수 값 여부: required
- 기본 값: defaultValue
- MultiValueMap
- HTTP header, HTTP 쿼리 파라미터와 같이 하나의 키에 여러 값을 받을 때 사용한다.
- 예시
- keyA=value1&keyA=value2
MultiValueMap<String, String> map = new LinkedMultiValueMap();
map.add("keyA", "value1");
map.add("keyA", "value2");
List<String> values = map.get("keyA"); //[value1,value2]
[스프링 MVC 9] 서블릿: HttpServletRequest 기본 사용법 (tistory.com)
[스프링MVC 30] 스프링 MVC: 시작 (tistory.com)
[스프링MVC 33] 로그에 대해서 간단히 알아보자 (tistory.com)
[스프링MVC 34] 스프링 MVC 기본 기능: 요청 매핑 (tistory.com)
728x90
반응형
'Spring Tutorial' 카테고리의 다른 글
[스프링MVC 기본 기능 5] HTTP 요청 파라미터 - @RequestParam (0) | 2023.08.22 |
---|---|
[스프링MVC 기본 기능 4] HTTP 요청 파라미터 (GET, POST) (0) | 2023.08.21 |
[스프링MVC 기본 기능 2] 요청 매핑 - API 예시 (0) | 2023.08.15 |
[스프링MVC 기본 기능 1] 요청 매핑 (0) | 2023.08.13 |
로그 사용법 (0) | 2023.08.11 |