RequestParam, RequestBody, 전송 계층

박연주·2022년 6월 28일
0

@RequestParam

-컨트롤러에서 데이터를 인자에 할당하는 대표적인 방법
RequestParam

  • url 상에서 데이터 찾음
  • <form> 태그를 이용하여 데이터를 입력하고 제출 버튼을 누르면 입력한 데이터들이 url을 통해서 전달
  • Json형식으로 데이터를 전달할때는, url은 localhost:8080/receive로 변함이 없고 body에 데이터를 포함하여 전송하기 때문에 @RequestParam 으로는 받을 수 없는 것

@Vaild - 유효성 검사

@RequestBody, @ResponseBody

@RestController

  • @Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게되어 별도 어노테이션을 명시해주지 않아도 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달 됨
  • @Controller인 경우에 바디를 자바객체로 받기 위해서는 @ResponseBody 어노테이션을 반드시 명시해주어야 함.

@RequestBody

  • 클라이언트에서 서버로 필요한 데이터를 요청하기 위해 JSON 데이터를 요청 본문에 담아서 서버로 보내면, 서버에서는 @RequestBody 어노테이션을 사용하여 HTTP 요청 본문에 담긴 값들을 자바객체로 변환시켜, 객체에 저장
@RequestBody @Valid Member member     
json 형식으로 요청들어온 body를 member에 연결(바인딩)

@RequestBody @Valid CreateMemberRequest reques
엔티티를 파라미터로 사용하지 않고 Dto 사용
json 형식으로 요청들어온 body를 dto에 연결(바인딩)

@ResponseBody

  • 서버에서 클라이언트로 응답 데이터를 전송하기 위해 @ResponseBody 어노테이션을 사용하여 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송함

전송 계층

Client  ->   Controller  ->  Service  ->  Repository
 	(객체 직접 x)
    대신 Dto 사용

Request, ResponseBody
유효성 검사 valid

profile
하루에 한 개념씩

0개의 댓글