현의 개발 블로그

[Servlet] HTTP 응답 데이터 본문

스프링부트 이론/MVC

[Servlet] HTTP 응답 데이터

hyun2371 2023. 6. 19. 17:27

데이터 응답 방식은 세 가지가 있다.

  • 단순 텍스트 응답
  • html 응답
  • MessageBody JSON 응답

각 방식에 대해 살펴보자.

 

 

단순 텍스트

HttpServletResponse를 사용하기 위해 HttpServlet.service()를 오버라이드 해준다.

@WebServlet(name = "responseTextServlet", urlPatterns = "/response-text")
public class ResponseTextServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}
}
PrintWriter writer = response.getWriter();
writer.println("ok");

urlPatterns에 명시해준 uri로 접속하면 ok를 확인할 수 있다.

 

 

Html 응답

HttpServlet.service()를 오버라이드 해준다.

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

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

 

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

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

 

/response-html로 접속하면 결과는 다음과 같다.

페이지 소스 보기를 하면 html문을 확인할 수 있다.

 

개발자 모드로 확인

MessageBody JSON 응답

HttpServlet.service()를 오버라이드 해준다.

@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json")
public class ResponseJsonServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}

 

HTTP 응답으로 JSON을 반환할 때는 content-type을 application-json으로 지정한다.

ObjectMappter.writeValueAsString(자바 객체); 를 사용하면 객체를 Json 문자로 변경할 수 있다.

//Content-Type: application/json
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");

HelloData helloData = new HelloData();
helloData.setUsername("kim");
helloData.setAge(20);

//객체를 Json 문자로 변환한다.
objectMapper.writeValueAsString(helloData);
response.getWriter().write(result);

 

/response-json으로 접속하면 아래와 같은 결과를 확인할 수 있다.

http://localhost/response-json
개발자 모드로 확인

 

 


Reference

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

 

Comments