스프링부트 3.0 이상은 jvm 버전 17 이상이어야 한다.
해당 클래스가 Controller로 사용됨을 스프링 프레임워크에 알린다.
자바 객체를 HTTP 응답 본문으로 매핑하는 역할을 한다.
이를 통해 자바 객체를 JSON 등의 형식으로 변환하여 클라이언트에게 전송할 수 있다.
해당 url
주소로 Get
요청을 한다.
HTTP 요청 파라미터를 컨트롤러 메서드의 파라미터와 매핑하는 역할을 한다.
여기서, HTTP 요청 파라미터는 URL 쿼리 스트링, HTML 폼을 의미한다.
@AllArgsConstructor
Getter
, Setter
Getter
, Setter
메서드 자동 생성/home/addPerson?name=손승완&age=25
count
를 증가시켜 person
객체를 만든다.person
객체를 personList
에 저장 @GetMapping("/home/addPerson")
@ResponseBody
public String addPerson(@RequestParam String name, @RequestParam int age) {
Person person = new Person(++count, name, age);
personList.add(person);
return count + "번 사람이 추가되었습니다.";
}
/home/removePerson?id=2
id
를 토대로 findById
메서드를 실행시켜 person
객체를 찾아 반환받는다.personList
에서 person
객체를 삭제 @GetMapping("/home/removePerson")
@ResponseBody
public String removeList(@RequestParam int id) {
Person person = findById(id);
if (person == null) {
return "응답 : " + id + "번 사람이 존재하지 않습니다.";
}
personList.remove(person);
return "응답 : " + id + "번 사람이 삭제되었습니다.";
}
private static Person findById(int id) {
for (Person person : personList) {
if (person.id == id) {
return person;
}
}
return null;
}
/home/modifyPerson?id=3
findById
메서드를 통해 id
를 통해 찾은 person
객체를 반환받는다.person
객체의 name
과 age
값을 쿼리스트링을 통해 받은 값으로 초기화한다. @GetMapping("/home/modifyPerson")
@ResponseBody
public String modifyList(@RequestParam int id, @RequestParam String name, @RequestParam int age) {
Person person = findById(id);
if (person == null) {
return "응답 : " + id + "번 사람이 존재하지 않습니다.";
}
person.setName(name);
person.setAge(age);
return "응답 : " + id + "번 사람이 수정되었습니다.";
}
HttpServletRequest
: 브라우저에서 서버에 요청한 내용HttpServletResponse
: 서버에서 브라우저에 보낼 내용request.getCookies
: HTTP 요청에 포함된 쿠키를 배열 형태로 반환response.addCookie
: HTTP 응답에 쿠키를 추가해 응답한다 @GetMapping("/home/cookie/increase")
@ResponseBody
public int showCookieIncrease(HttpServletRequest request, HttpServletResponse response) {
int countCookie = 0;
if (request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
if (cookie.getName().equals("count")) {
countCookie = Integer.parseInt(cookie.getValue());
}
}
}
int newCountCookie = countCookie + 1;
response.addCookie(new Cookie("count", newCountCookie + ""));
return newCountCookie;
}