본문 바로가기
Skills/Spring

스프링 Parsing 방법(x-www-form-urlencoded, json)

by Hoseok 2023. 2. 8.
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
반응형