Search

8. 스프링부트 Controller http 4가지 요청 방식

http 4가지 요청 방식

클라이언트가 웹서버에 요청
웹서버는 DB에 SELECT, INSERT, UPDATE, DELETE 요청을 해서 응답한다

(1) GET(동사) - 데이터 요청

(2) POST(동사) - 데이터 전송

http Body 필요 (Body에는 데이터가 담겨져 있다)

(3) PUT(동사) - 데이터 갱신

http Body 필요 (Body에는 데이터가 담겨져 있다)

(4) DELETE(동사) - 데이터 삭제

실습

생성
두개만 체크하고 finish
목록이 다르게 보이면 점3개 있는거 클릭해서 저렇게 맞춰주면 목록이 이미지처럼 보여진다.
자바 파일 생성
HttpController 생성
package com.cos.controllerdemo.web; public class HttpController { public String get() { } public String post() { } public String put() { } public String delete() { } }
Java
복사
이렇게는 단순한 함수다.
얘들을 컨트롤러로 만들려면
package com.cos.controllerdemo.web; import org.springframework.web.bind.annotation.RestController; @RestController public class HttpController { public String get() { } public String post() { } public String put() { } public String delete() { } }
Java
복사
@RestController 어노테이션을 붙여주면 된다. 그러면 컨트롤러로 인식한다
get함수를 호출할려면
//http://localhost:8080/get @GetMapping("/get") public String get() { }
Java
복사
package com.cos.controllerdemo.web; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HttpController { //http://localhost:8080/get @GetMapping("/get") public String get() { return "get 요청됨"; } //http://localhost:8080/post @PostMapping("/post") public String post() { return "post 요청됨"; } //http://localhost:8080/put @PutMapping("/put") public String put() { return "put 요청됨"; } //http://localhost:8080/delete @DeleteMapping("/delete") public String delete() { return "delete 요청됨"; } }
Java
복사
둘 중 하나만 쓰면되는데 우린 파일이 아니라 데이터를 응답해줄거라서
위에 어노테이션은 주석처리.
package com.cos.controllerdemo.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RestController; //@Controller //파일을 응답하는 컨트롤 (클라이언트가 브라우저면 .html 파일을 응답하는게 좋다) @RestController //데이터를 응답하는 컨트롤러 (클라이언트가 핸드폰이면 data를 응답하는게 좋) public class HttpController { //http://localhost:8080/get @GetMapping("/get") public String get() { //만약 @Controller 파일 어노테이션이였을때는 return 하는게 파일명이 되어야한다. //return "a.html"; return "get 요청됨"; } //http://localhost:8080/post @PostMapping("/post") public String post() { return "post 요청됨"; } //http://localhost:8080/put @PutMapping("/put") public String put() { return "put 요청됨"; } //http://localhost:8080/delete @DeleteMapping("/delete") public String delete() { return "delete 요청됨"; } }
Java
복사
서버 실행
웹 서버 진행시 404 에러가 뜬다.
하지만 앤드포인트까지 적으면 데이터가 온다
//http://localhost:8080/get @GetMapping("/get") public String get() { //만약 @Controller 파일 어노테이션이였을때는 return 하는게 파일명이 되어야한다. return "a.html"; return "<h1>get 요청됨</h1>"; }
Java
복사
return 에 <h1> 태그 넣어서 데이터를 확인해보자.
고치고 저장하는 순간 서버가 리로드 되는데 이게 스프링부트 데브툴의 라이브러리다.
그리고 우리 @어노테이션을 어떻게 쓸 수 있냐면 시작할때 스프링부트의 스타터 라이브러리를 체크해서 사용가능한거다
이제 post 요청할려면
웹 브라우저에서는 post요청을 주소에서 못한다.
delete도 못한다
그래서 저번에 설치한 Postman 프로그램 켜서
post 요청이 온다
put
delete

*참고