// 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 경로에 추가할 수 있음
/star/Robbie/age/95 : ‘Robbie’와 ‘95’ 데이터를 서버에 보내기 위해 URL 경로에 추가
데이터를 받기 위해서는 /star/{name}/age/{age} 이처럼 URL 경로에서 데이터를 받고자 하는 위치의 경로에 {data} 중괄호를 사용
(@PathVariable String name, @PathVariable int age)
// 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);
}
서버에 보내려는 데이터를 URL 경로 마지막에 ? 와 & 를 사용하여 추가
?name=Robbie&age=95 : ‘Robbie’와 ‘95’ 데이터를 서버에 보내기 위해 URL 경로 마지막에 추가
데이터를 받기 위해서는 ?name=Robbie&age=95 에서 key 부분에 선언한 name과 age를 사용하여 value에 선언된 Robbie, 95 데이터를 받아올 수 있음
(@RequestParam String name, @RequestParam int age)
// POST http://localhost:8080/hello/request/form/param
// Header
// Content type: application/x-www-form-urlencoded
// Body
// name=Robbie&age=95
@PostMapping("/form/param")
@ResponseBody
public String helloPostRequestParam(@RequestParam String name, @RequestParam int age) {
return String.format("Hello, @RequestParam.<br> name = %s, age = %d", name, age);
}
HTML의 form 태그를 사용하여 POST 방식으로 HTTP 요청을 보낼 수 있음
이때 해당 데이터는 HTTP Body에 name=Robbie&age=95
형태로 담겨져서 서버로 전달됨
해당 데이터를 받는 방법은 @RequestParam 애너테이션을 사용하여 받아올 수 있음
@RequestParam은 생략이 가능
@RequestParam(required = false)
@PathVariable(required = false)
도 해당 옵션이 존재