Path Variable
- Client에서 서버로 HTTP 요청을 보낼 때 데이터를 함께 보낼 수 있다.
- 서버에 보내려는 데이터를 URL 경로에 추가할 수 있다.
- /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);
}
Request 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);
}
Model Attribute
@PostMapping("/form/model")
@ResponseBody
public String helloRequestBodyForm(@ModelAttribute Star star) {
return String.format("Hello, @ModelAttribute.<br> (name = %s, age = %d) ", star.name, star.age);
}
HTML의 form 태그를 사용하여 POST 방식으로 HTTP 요청을 보낼 수 있다.
이때 해당 데이터는 HTTP Body에 name=Robbie&age=95 형태로 담겨져서 서버로 전달된다.
해당 데이터를 Java의 객체 형태로 받는 방법은 @ModelAttribute 애너테이션을 사용한 후 Body 데이터를 받아올 객체 (Star star)를 선언한다.
Request Body
@PostMapping("/form/json")
@ResponseBody
public String helloPostRequestJson(@RequestBody Star star) {
return String.format("Hello, @RequestBody.<br> (name = %s, age = %d) ", star.name, star.age);
}
HTTP Body에 {"name" : "Robbie", "age" : 95} 같은 JSON 형태로 데이터가 서버에 전달되었을 때 @RequestBody 애너테이션을 사용해 데이터를 객체 형태로 받을 수 있다.
아 오늘 낮까지 이해 됐는데.. 다형성 복습하느라 다시 이해가 안 가기 시작한다.. 근데 다형성도 아직 이해 못함.. 형변환 부분이 이해 안 가기 시작했는데 그때부터 머리가 깨질 거 같은 고런 느낌
뇌 과부하 온 거 같은데 오늘은 좀 일찍 자야 될 거 같다..
'TIL' 카테고리의 다른 글
TIL 2023-11-06 개인프로젝트 완성 및 3 레이어 아키텍처 (0) | 2023.11.06 |
---|---|
TIL 2023-11-03 다형성 업 캐스팅 다운 캐스팅 참조 변수 완벽 이해 (0) | 2023.11.03 |
TIL 2023-11-01 Spring MVC (0) | 2023.11.01 |
TIL 2023-10-31 Spring과 SpringBoot (0) | 2023.10.31 |
TIL 2023-10-30 클래스간의 관계 결정하기 (0) | 2023.10.30 |