Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 인출수수료
- 특약
- jQuery
- Java
- python
- PythonProgramming
- 프론트엔드
- 심장질환
- 교보
- 급성심근경색증
- javascript
- Vue.js
- 뇌출혈
- 코딩
- 리스트
- 웹개발
- 변환
- 자바스크립트
- 수수료
- 보험료
- 중도인출
- 파이썬
- 사망
- 가입
- 추가납입
- 보험
- 교보생명
- 납입
- 프로그래밍
- 문자열
Archives
- Today
- Total
SeouliteLab
[Java/자바] Spring @RequestHeader: HTTP 요청 헤더 처리 본문
Spring 프레임워크에서 @RequestHeader 어노테이션은 HTTP 요청의 헤더 정보를 컨트롤러 메서드의 매개변수로 주입할 때 사용됩니다. 이 글에서는 @RequestHeader 어노테이션의 사용법과 예제 코드를 통해 자세히 알아보겠습니다.
1. 기본적인 @RequestHeader 사용법
가장 간단한 형태의 @RequestHeader 어노테이션은 다음과 같이 컨트롤러 메서드의 매개변수로 사용됩니다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/api")
public String handleRequestHeader(@RequestHeader("User-Agent") String userAgent) {
return "User-Agent: " + userAgent;
}
}
위의 예제에서 handleRequestHeader
메서드는 User-Agent
헤더 값을 매개변수로 받아 반환합니다.
2. 기본 값과 필수 값 지정하기
@RequestHeader 어노테이션을 사용하여 기본 값과 필수 값 지정이 가능합니다.
예제 1: 기본 값 지정
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/api")
public String handleRequestHeader(@RequestHeader(value = "User-Agent", defaultValue = "Unknown") String userAgent) {
return "User-Agent: " + userAgent;
}
}
위의 예제에서는 User-Agent
헤더가 없을 경우 기본 값으로 "Unknown"을 사용합니다.
예제 2: 필수 값 지정
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MissingRequestHeaderException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/api")
public String handleRequestHeader(@RequestHeader("User-Agent") String userAgent) {
return "User-Agent: " + userAgent;
}
@ExceptionHandler(MissingRequestHeaderException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleMissingRequestHeader() {
return "Required header is missing";
}
}
위의 예제에서는 User-Agent
헤더가 필수로 요구되며, 해당 헤더가 없는 경우 예외를 처리합니다.
3. 예제 코드
다음은 @RequestHeader 어노테이션을 사용한 예제 코드입니다.
예제 1: 기본적인 @RequestHeader 사용법
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/api")
public String handleRequestHeader(@RequestHeader("User-Agent") String userAgent) {
return "User-Agent: " + userAgent;
}
}
예제 2: 기본 값과 필수 값 지정
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.MissingRequestHeaderException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/api")
public String handleRequestHeader(@RequestHeader(value = "User-Agent", defaultValue = "Unknown") String userAgent) {
return "User-Agent: " + userAgent;
}
@ExceptionHandler(MissingRequestHeaderException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleMissingRequestHeader() {
return "Required header is missing";
}
}
4. 결론
이상으로 Spring의 @RequestHeader 어노테이션에 대한 자세한 설명과 예제 코드를 살펴보았습니다. @RequestHeader 어노테이션을 사용하여 HTTP 요청의 헤더 정보를 쉽게 처리할 수 있습니다.
'프로그래밍' 카테고리의 다른 글
[Java/자바] Spring @ResponseStatus: HTTP 응답 상태 코드 지정하기 (0) | 2024.03.12 |
---|---|
[Java/자바] Spring @ExceptionHandler: 예외 처리하기 (0) | 2024.03.12 |
[Java/자바] Spring @Bean: 빈으로 등록하기 (0) | 2024.03.12 |
[Java/자바] Spring @Configuration: 설정 클래스로 애플리케이션 구성하기 (0) | 2024.03.12 |
[Java/자바] Spring @Component에 대한 자세한 설명과 예제 (0) | 2024.03.12 |