[Spring] HTTP 데이터를 서버에서 처리하기

JunWoo An·2023년 11월 2일
0

스파르타코딩클럽

목록 보기
11/46

우리가 회원가입, 단어검색, 상품주문 등 여러가지 인터넷상에서 활동을 할때 우리의 데이터를 서버에 전달해줘야하는 경우가 발생한다.이때 어떻게 데이터가 전송이 되며 전송이된 데이터가 어떻게 서버에서 다뤄지는지 알아보자.

1. Path Variable 방식

클라이언트에서 아래와 같이 Get요청을 보냈다고 가정을 해보자.

// [Request sample]
// GET http://localhost:8080/hello/request/star/Robbie/age/95

@GetMapping("/star/{name}/age/{age}")
@ResponseBody
public String helloRequestPath(@PathVariable String name, @PathVariable int age)
{
    return String.format("Hello, @PathVariable.<br> name = %s, age = %d", name, age);
}

URL로 mapping되는 위치 바로 뒤에 정보를 붙여서 보내는 경우가 있다. 이때 Path Varialbe 방식으로

@GetMapping("/star/{name}/age/{age}")

해당 변수로서 받을부분은 중괄호로 받아 @PathVarialbe 어노테이션을 통해 변수로 할당이 가능하다.

2. Request Param

// [Request sample]
// GET http://localhost:8080/hello/request/form/param?name=Robbie&age=95

@GetMapping("/form/param")
@ResponseBody
public String helloGetRequestParam(@RequestParam String name, @RequestParam int age) {
    return String.format("Hello, @RequestParam.<br> name = %s, age = %d", name, age);
}

Request Param 방식은 Path Variable 방식과 유사하게 Get형식에서는 URL에 데이터를 담아 전달하지만 그 형태가 다른데 경로마지막에 '/' 가 아닌 ?로 시작하여 중간에 key = value 형식과 구분짓는 '&'로 이뤄져있다는 점이다. 변수는 @RequestParam 어노테이션으로 변수를 할당하는데 이때 value가 null값일때는 오류가 발생한다 이는 기본적으로 RequestParam의 데이터가 필수요소이기 때문인데 이때는 아래와 같이 required옵션을 false로 바꿔주면된다. 또한 String, int, Intger 등 심플한 타입의 변수의 경우 객체타입과 구분지을 필요없이 Spring 자체적으로 변수로 할당되기때문에 @RequestParam의 생략이 가능하다.

@RequestParam(required = false) String name, int age
profile
도전하는 사람

0개의 댓글