본문 바로가기
Back-End/Spring MVC

서블릿 - HTTP 응답 데이터

by 달의 조각 2022. 4. 19.
이 글은 김영한 님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의를 수강하며 정리한 글입니다.

 

 

단순 텍스트 응답

 

writer.println("ok");

 

 

HTML 응답

 

📄 ResponseHtmlServlet

HTTP 응답으로 HTML을 반환할 때는 content-type을 text/html 로 지정해야 한다.

//Content-Type: text/html;charset=utf-8
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println("  <div>안녕?</div>");
writer.println("</body>");
writer.println("</html>");

 

 

HTTP API

메시지 바디 JSON

 

📄 ResponseJsonServlet

private ObjectMapper objectMapper = new ObjectMapper();

@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //Content-Type: application/json
    response.setContentType("application/json");
    response.setCharacterEncoding("utf-8");

    HelloData helloData = new HelloData();
    helloData.setUsername("jang");
    helloData.setAge(22);

    //{"username":"jang", "age":22}
    String result = objectMapper.writeValueAsString(helloData);
    response.getWriter().write(result);

 

application/json은 utf-8 형식을 사용하도록 정의되어 있다. 그래서 추가 파라미터를 지원하지 않는다.
application/json;charset=utf-8으로 전달하는 것은 의미 없는 파라미터를 추가한 것이 된다.

response.getWriter()를 사용하면 추가 파라미터를 자동으로 추가하는데,
이때는 response.getOutputStream()으로 출력하면 그런 문제가 없다.

'Back-End > Spring MVC' 카테고리의 다른 글

MVC 패턴  (0) 2022.04.20
서블릿, JSP - 회원 관리 웹 애플리케이션  (0) 2022.04.19
서블릿 - HttpServletResponse  (0) 2022.04.18
서블릿 - HTTP 요청 데이터의 종류  (0) 2022.04.16
서블릿 - HttpServletRequest  (0) 2022.04.15

댓글