반응형
HTTP message body
HTTP API에서 주로 사용한다. JSON, XML, TEXT
데이터 형식은 주로 JSON을 사용한다.
@WebServlet(name = "RequestBodyStringServlet", urlPatterns = "/request-body-string")
public class RequestBodyStringServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
System.out.println("messageBody = " + messageBody);
response.getWriter().write("ok");
}
}
inputStream은 byte 코드를 반환하기 때문에 문자표(UTF-8로 설정)를 지정해 줘야 한다.
먼저 간단한 TEXT 메시지를 HTTP 메시지 바디에 담아서 전송을 해본다.
Postman을 통해 OH JU HYEON을 보내봤다.
잘 읽혀오는 것을 확인할 수 있다.
JSON 형식으로 데이터를 전달할 수도 있다.
먼저 JSON 형식으로 파싱할 수 있게 객체를 하나 생성해 준다.
package hello.servlet.basic;
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
public class HelloData {
private String username;
private int age;
}
원래는 Getter, Setter를 다 설정해 줬는데 lombok 라이브러리를 사용하여 어노테이션 추가로 대체할 수 있게 되었다.
@WebServlet(name = "RequestBodyJsonServlet", urlPatterns = "/request-body-json")
public class RequestBodyJsonServlet extends HttpServlet {
private ObjectMapper objectMapper = new ObjectMapper();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
System.out.println("messageBody = " + messageBody);
HelloData helloData = objectMapper.readValue(messageBody, HelloData.class);
System.out.println("helloData.getUsername() = " + helloData.getUsername());
System.out.println("helloData.getAge() = " + helloData.getAge());
response.getWriter().write("ok");
}
}
JSON 결과를 파싱해서 사용할 수 있는 자바 객체로 변환하기 위해 변환 라이브러리를 추가해서 사용해야 하는데 스프링 부트로 MVC를 선택해서 프로젝트를 생성해 줬기 때문에 기본으로 Jackson 라이브러리를 함꼐 제공한다. 때문에 ObjectMapper를 사용할 수 있다.
Postman으로 JSON 타입의 데이터를 실행해봤다.
데이터가 정상적으로 조회된다.
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부한 내용입니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : HTTP 단순 텍스트 응답과 HTML 응답 (0) | 2022.01.20 |
---|---|
[Spring Boot] : HttpServletResponse 기본 사용법과 응답 코드 (0) | 2022.01.20 |
[Spring Boot] : HTTP의 Form을 통해 클라이언트에서 서버로 데이터 전송하기 (0) | 2022.01.19 |
[Spring Boot] : Get 쿼리 파라미터를 통해 파라미터를 조회하기 (0) | 2022.01.19 |
[Spring Boot] : HTML, HTTP API, CSR, SSR (0) | 2022.01.18 |
댓글