본문 바로가기
Develop/Spring+JPA

[Spring] 헤더 조회

by 연로그 2021. 7. 14.
반응형

어노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 받아올 수 있다.

어떠한 파라미터를 받아올 수 있는지 몇 가지 예제를 통해 살펴보겠다.

 

 📚 HTTP 헤더 조회

@Slf4j
@RestController
public class RequestHeaderController {
    @RequestMapping("/headers")
    public String headers(HttpServletRequest req, 
                    HttpServletResponse res, 
                    HttpMethod httpMethod, 
                    Locale locale,  
                    @RequestHeader MultiValueMap<String, String> headerMap, 
                    @RequestHeader("host") String host,  
                    @CookieValue(value="myCookie", required=false) String cookie) {
		
        log.info("request={}", req);
        log.info("response={}", res);
        log.info("httpMethod={}", httpMethod);
        log.info("locale={}", locale);
        log.info("headerMap={}", headerMap);
        log.info("header host={}", host);
        log.info("myCookie={}", cookie);
				 
        return "ok";
    }
	
}

 

  • HttpServletRequest
  • HttpServletResponse
  • HttpMehotd: HTTP 메소드 조회 (ex: POST, GET, ...)
  • Locale: 가장 우선순위 높은 Locale 정보 조회 (ex: ko_kr)
  • @RequestHeader: HTTP 헤더 정보 조회
  • @CookieValue: 쿠키 조회

 

📃 그 외 설명 (@Slf4j와 MutiValueMap)

더보기

@Slf4j

  • 로그를 편하게 찍기 위해 추가한 어노테이션
  • 롬복에서 지원
  • 아래 코드를 자동으로 생성해 개발자는 log를 통해 로그 작성 가능
private static final org.slf4j.Logger log = 
		org.slf4j.LoggerFactory.getLogger(RequestHeaderController.class);

 

MultiValueMap<String, String>

  • Map과 다르게 하나의 키에 여러개의 값을 가질 수 있음
  • key A에 대해 value1, value2가 존재한다면 map.get("A") 시 [value1, value2]가 조회됨

 

그 외에 @Controller에서 받아올 수 있는 파라미터나 응답 값 목록은 Spring 공식 문서에서 확인할 수 있다.

아래는 그 목록을 옮겨둔 것이며 하나하나 꼼꼼하게 살펴볼 필요 없다.

이런 것이 있구나~ 정도로만 넘어가고 실무에서 자주 사용하는건 이후에 예제 코드를 통해 써보도록 하자.

( 👉 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-arguments )

 

~~~TODO 설명 추가예정 ~~~

📖 파라미터 목록

  • WebRequest, NativeWebRequest
  • ServletRequest, ServletResponse
  • HttpSession
  • PushBuilder
  • Principal
  • HttpMethod
  • Locale
  • TimeZone, ZoneId
  • InputStream, Reader
  • OutputStream, Writer
  • @PathVariable
  • @MatrixVariable
  • @RequestParam
  • @RequestHeader
  • @CookieValue
  • @RequestBody
  • HttpEntity<B>
  • @RequestPart
  • Model, ModelMap
  • RedirectAttributes
  • @ModelAttribute
  • BindingResult
  • SessionStatus, @SessionAttributes
  • UriComponentsBuilder
  • @SessionAttribute
  • @RequestAttribute

 

📖 응답 목록

  • @ResponseBody
  • HttpEntity<B>, ResponseEntity<B>
  • HttpHeaders
  • String
  • View
  • Map, Model
  • @ModelAttribute
  • ModelAndView
  • void
  • DeferredResult<V>
  • Callable<V>
  • ListenableFuture<V>, CompletionSatge<V>, CompletableFuture<V>
  • ResponseBodyEmitter, SseEmitter
  • StreamingResponseBody
  • ReactiveAdapterRegistry

본 게시글은 김영한 님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의를 구매 후 정리하기 위한 포스팅입니다.

내용을 임의로 추가, 수정, 삭제한 부분이 많으며 정확한 이해를 위해서 강의를 구매하시는 것을 추천 드립니다.

 

inf.run/B756

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원

www.inflearn.com

 

반응형

'Develop > Spring+JPA' 카테고리의 다른 글

[Spring] HTTP 응답  (0) 2021.08.11
[Spring] http 요청 데이터 조회  (0) 2021.08.09
[Spring] 요청 매핑  (0) 2021.06.25
[스프링 MVC] @Controller, @RequestMapping  (0) 2021.05.27
[스프링 MVC] 뷰 리졸버  (0) 2021.05.26