Spring

[Spring] @RequestBody / @ResponseBody 차이

natrue 2021. 5. 28. 15:39
728x90

HTTP  : 데이터를 주고받기 위한 프로토콜 

HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 

HTTP Body 안엔 XML 또는 JSON이 들어간다. 

@RequestBody : HTTP Body안에 JSON을 VO에 맵핑하는 스프링 어노테이션. 

@RequestBody 어노테이션을 이용하면 HTTP 요청 Body를 자바 객체로 전달받을 수 있다.

Ajax에서 파라미터를 컨트롤러에 보내면 컨트롤러에선 @RequestBody를 사용하여 파라미터를 받는다. 

@RequestMapping(value = "/requestBodyTest.do") 
public String requestBodyTest(@RequestBody UserVO vo) throws Exception {
	return "test/login"; 
}

@ResponseBody : VO 객체를 JSON으로 바꿔 HTTP Body안에 담는 스프링 어노테이션. 

요청한 형태에 맞춰서 메시지 변환기를 통해 결과 값을 반환한다.

 @ResponseBody을 이용하면 자바 객체를 HTTP 응답 body로 전송할 수 있다.

@ResponseBody 
@RequestMapping(value = "/responseBodyTest.do") 
public UserVO responseBodyTest() throws Exception { 
  UserVO vo = new UserVO(); 
  vo.setId("테스트"); 
  
  return vo; 
}

 

 요청 : requestBody

 응답 : responseBody