본문 바로가기

[Spring] HTTP Response 데이터 처리하기

@xuv22025. 6. 21. 14:49

HTTP Response 메시지는 주로 다음 내용들을 담아 응답한다.

- 단순 텍스트 응답 -> writer.println("ok")

- HTML 응답 

- HTTP API 응답 -> 바디에 JSON 응답


HTML 응답

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "responseHtmlServlet", urlPatterns = "/response-html")
public class ResponseHtmlServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 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>");
    }
}

중요 : HTML 을 반환할 때는 반드시 타입을 text/html로 지정해야 한다!!!


API - JSON 응답

응답을 담을 객체는 이전에 사용했던 HelloData 클래스를 이용하였다.

import com.fasterxml.jackson.databind.ObjectMapper;
import hello.servlet.basic.HelloData;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json")
public class ResponseJsonServlet extends HttpServlet {

    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 data = new HelloData();
        data.setUsername("Lim");
        data.setAge(26);

        //{"username":"Lim", "age":26}
        String result = objectMapper.writeValueAsString(data);

        response.getWriter().write(result);
    }
}

HTTP 응답으로 JSON 을 반환할 때는 타입을 application/json으로 지정해줘야 하고, Jackson 라이브러리에 writeValueAsString() 메서드를 통해 객체를 JSON 문자로 변경할 수 있다.

xuv2
@xuv2 :: xuvlog

폭싹 늙었수다

목차