1년이나 지나서 다시 돌아왔습니다~~~!!!!
회사다니면서 블로그를 관리하려니 생각보다 어려워서요 ㅠㅠㅠ
생각보다 매일 방문해주시는 분들이 많아서 다시 작성하기로 마음먹었습니다!! 짝짝짝
다시 한번 달려볼까요??
이전글에서는 Controller 가 어떤 역할을 수행하는 놈인지 알아봤는데요
이번에는 Controller 를 사용해야할지 진행해보도록 하겠습니다!!
그.전.에!
혹시 HTTP Request 를 날릴 때 GET / POST 방식을 모르는 분들을 위해서 잠시 짚고 넘어갈게요!!
1. GET / POST
GET
base url 뒤에 원하는 값을 쿼리 형태로 붙여서 request 보내는 것
ex) http://ysjleader.com?name=ysjleader&age=27
base url 은 ysjleader.com 이 되구 name, age 라는 변수에 값을 담아 보내는 모양입니다~!!
?name=ysjleader&age=27 요기가 쿼리 형태가 되겠죠??
POST
base url 뒤에 request 시 값이 붙지 않고 HTTP 패킷의 BODY에 보내는 것
이녀석을 사용하려면 Client에서 POST 로 직접 정의하고 원하는 변수를 보내줘야합니다.
2. Controller 에서 동일 URL로 들어오는 Request 를 GET / POST 따로 처리하기
GET
@RequestMapping(value = "/userInfo", method = RequestMethod.POST)
public String postUserInfo(@RequestParam("userName") String userName, @RequestParam("userAge") String userAge, Model model) {
model.addAttribute("userName", userName);
model.addAttribute("userAge", userAge);
return "user";
}
Client 가 주소창에 http://ysjleader.com/userInfo?name=ysjleader&age=27 요렇케 치고 엔터를 딱 누르면 GET 방식으로 요청이 되는 것인데요
기본적으로 주소창에 url 을 입력하고 엔터를 치는 것은 GET 방식입니다.
그래서 Controller 내에 구현되어있는 저 컨트롤러는 base url(ysjleader.com) 뒤에 /userInfo 라는 경로로 요청이 들어왔으니
value="/userInfo" 의 값을 가진 Controller 내 메서드가 작업을 담당하겠죠??
그리고 이제 url에서 ? 뒤에보면 key=value 형태로 요청이 왔는데요 name=ysjleader&age=27 요기서 name과 age가 변수로 들어오게 되는 것 입니다.
@RequestParam 이라는 어노테이션이 앞글과 다르게 새로 등장했는데요 요녀석의 역할은 Request로 넘어온 Parameter를 처리하겠다!!! 라는 뜻이고 그럼 parameter 가 넘어왔으니 변수는 항상 이름이 있으니 어떤 이름의 parameter 를 받을지 결정하는 것이 @RequestParam("name") , @RequestParam("age") 요기서 괄호의 역할이라고 보면 되겠습니다.
그럼 Request 로 넘어온 Parameter 중에서 name이라는 변수를 받는 녀석을 구현하려면 @RequestParam("name") 이 되겠죠?? 아쥬 쉽져?? 그리고 변수를 받는 방법이 준비 되었으니 그 변수는 어떤 자료형으로 받을지 정의해야겠죠? 그부분이 바로 뒤에 이어서나오는 String userName이 되겠습니다.
그럼 같이 한번 @RequestParam("age") String userAge 를 해석해볼까요??
Request 를 통해 Parameter 들이 넘어오고 그 Parameter 중 age 라는 이름을 가진 녀석을 userAge 라는 변수에 String 형태로 받겠다!!! 같은 생각을 하셨나요?? 그럼 박수 세번 시작!! 아쥬 잘했습니돠~~!!!
POST
@RequestMapping(value = "/userInfo", method = RequestMethod.POST)
public String postUserInfo(@RequestParam("userName") String userName, @RequestParam("userAge") String userAge, Model model) {
model.addAttribute("userName", userName);
model.addAttribute("userAge", userAge);
return "user";
}
요녀석은 GET 에서 딱하나 다른데요 바로 method=RequestMethod.POST 요부분 입니다.
(사실 GET은 method=RequestMethod.GET 을 안붙여도 디폴트로 GET을 바라보기때문에 문제없지만...)
GET,POST 모두 어떤 방법 즉, method 로 받을지 결정을 해주어야하는데요 바로 method=RequestMethod.POST 요부분이 그 부분을 담당해줍니다.
다른 내용은 위의 GET 설명에서 했기때문에 패스~~
'Develop > Server' 카테고리의 다른 글
SpringBoot AOP 이해 - AOP(1) (1) | 2019.11.29 |
---|---|
SpringBoot Controller, Service, DAO 이해 - Service(2) + MyBatis (5) | 2019.11.12 |
SpringBoot Controller, Service, DAO 이해 - Service(1) (9) | 2019.03.29 |
SpringBoot Controller, Service, DAO 이해 - Controller(3) (5) | 2019.03.25 |
SpringBoot Controller, Service, DAO 이해 - Controller(1) (6) | 2018.02.27 |