🍃 Spring Boot

[Spring Boot] GET과 POST에서의 @RequestParam 동작방식

별이⭐ 2024. 6. 4. 09:18
GET 방식에서의 @RequestParam은 URL 쿼리 문자열에서 파라미터를 추출
POST 방식에서의 @RequestParam은 HTTP 요청 본문에서 파라미터를 추출

 

1. GET 방식에서의 @RequestParam

  • 컨트롤러
@RestController
public class GetController {

    @GetMapping("/greet")
    public String greet(@RequestParam(name = "name", defaultValue = "Guest") String name) {
        return "안녕하세요, " + name + "!";
    }
}
  • 요청 예시
GET /greet?name=Kim
  • 결과
안녕하세요, Kim!
  1. URL에 포함된 name이라는 쿼리 파라미터를 @RequestParam이 추출한다.
  2. /greet?name= 뒤에 있는 값 "Kim"이 greet 메서드의 name으로 전달되어 안녕하세요, Kim!이 반환된다.
  3. 만약 쿼리 파라미터가 없이 /greet 로만 요청을 보낸다면 defaultValue인 Guest가 name으로 전달되어 안녕하세요, Guest!가 반환된다.

 

2. POST 방식에서의 @RequestParam

  • 컨트롤러
@RestController
public class PostController {

    @PostMapping("/submit")
    public String submit(@RequestParam(name = "name") String name) {
        return "이름: " + name;
    }
}
  • 요청 예시
POST /submit
Content-Type: application/x-www-form-urlencoded

name=Kim
  • 결과
이름: Kim
  1. POST 요청 본문에서 name이라는 파라미터를 @RequestParam이 추출한다.
  2. name의 값인 "Kim"이 submit 메서드의 name으로 전달되어 이름: Kim이 반환된다.