Summary

MVC가 없이 Servlet만으로 HTTP 요쳥 메시지와 응답 메시지 데이터를 가져오고 셋팅하는 방법을 배워봤다.

  1. HTTP 요청 메시지 서버 입장에서는 아래의 GET과 POST 방식의 HTML Form 전송 받은 데이터 형식이 같아서 두 가지 모두 request.getParameter()로 데이터를 조회할 수 있다!

  • GET : 메시지 바디 없이 URL의 쿼리 파라미터에 데이터를 담아 보낸다. ex) 검색, 필터, 페이징 등에서 많이 사용하는 방식이다.

  • POST 방식으로 HTML Form 전송 Content-type과 인코딩 정보 필수 담는다.

    content-type : application/x-www-form-urlencoded 메시지 바디에 데이터(쿼리 파라미터 형식)를 담아 보낸다. username=hello&age=20 ex) 회원 가입, 상품 주문, HTML Form 사용

  • HTTP API : JSON, XML, TEXT, Binary 데이터 등을 메시지 바디에 담아 전송한다. 데이터 형식은 주로 JSON 사용 전송 방식은 POST, PUT, PATCH request.getInputStream()으로 요청 메시지의 바디 내용을 byte로 가져온다! byte를 스트링으로 변환한다! - 스트링의 유틸리티인 StreamUtils.copyToString() 사용 byte 코드를 우리가 읽을 수 있는 문자(String)로 보려면 문자표

    (Charset)를 지정해주어야 한다. 여기서는 UTF_8 Charset을 지정해주었다.

String messageBody = StreamUtils.copyToString(inputStream,StandardCharsets.UTF_8);

객체를 생성해서 이것을 ObjectMapper로 Json 데이터로 변환하여 보낼 수 있다.

2. HTTP 응답 메시지

구성 - HTTP 응답코드 지정 - 헤더 생성 - 바디 생성 - Content-Type, 쿠키, Redirect

  • 단순 텍스트 : PrintWriter.println("text here");

  • HTML : content-type = text/html로 지정.

  • HTTP API : content-type = application/json으로 지정. ObjectMapper.writeValueAsString()를 사용하면 객체를 JSON 문자로 변경 가능하!

Last updated