728x90
반응형
우선 스프링의 기본 파싱 전략부터 알아보자.
스프링의 기본 전략은 x-www-form-urlencoded
스프링 Servlet Container는 x-www-form-urlencoded 타입의
데이터를 주고 받고 파싱하는 것을 기본적으로 제공해준다.
(다른 데이터 타입은 제공하지 않는다.)
x-www-form-urlencoded get 요청
만약 get 요청으로 x-www-form-urlencoded 데이터가 들어오면
body가 없으므로, url의 QueryString을 보고 request.getParameter(”key”);
로, key 값을 받아서 파싱한다.
x-www-form-urlencoded post 요청
만약 post 요청으로 x-www-form-urlencoded 데이터가 들어오면
Buffer로 읽은 후에 파싱한다.
그렇다면 json으로 받을 때는 어떻게 해야할까?
json으로 데이터를 받을 때는 @RequestBody를 붙여 주어야 한다.
스프링은 @RequestBody를 붙이면 BufferedReader로 데이터를 읽는다.
그 다음, @RequestBody 뒤에 타입을 보고
String이면 String으로 바로 보내고,
아니면 ObjectMapper로 파싱한다.
아래와 같은 코드가 @RequestBody 내부에서 실행되는 것이다.
BufferedReader br = request.getReader();
String json = br.readLine();
ObjectMapper om = new ObjectMapper();
BoardUpdateReqDto bu = om.readValue(json, BoardUpdateReqDto.class);
728x90
반응형
'Skills > Spring' 카테고리의 다른 글
Spring boot 3.0 + S3 서비스 적용 By Spring Cloud for AWS (1) | 2023.06.06 |
---|---|
스프링부트 테스트 시, JPA와 SQL INIT 충돌 이슈 (0) | 2023.04.30 |
[Jsoup이란/Jsoup 자바로 구현해보기] (0) | 2023.02.08 |