HTTP 응답 데이터 - 단순 텍스트, HTML

HTTP 응답 메시지는 주로 다음 내용을 담아서 전달합니다.

요청 데이터와 비슷하게 크게 세가지로 볼 수 있습니다.

HttpServletResponse - HTML 응답

hello.servlet.web.response.ResponseHtmlServlet

package hello.servlet.basic.response;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.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 //...1
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");

				//...2
        PrintWriter writer = response.getWriter();
        writer.println("<html>");
        writer.println("<body>");
        writer.println("    <div>안녕?</div>");
        writer.println("</body>");
        writer.println("</html>");
    }
}
  1. Content-Type을 text/html로 보낼거고, 인코딩 정보는 charset=utf-8로 보낼겁니다.

  2. 이렇게 서블릿으로 HTML을 렌더링 할 때는 직접 작성을 해야합니다.

    자바 코드니까 if문 등을 넣어서 로직을 바꾸면 동적으로 생성할 수 있습니다.

http://localhost:8080/response-html 실행하면 문자가 화면에 출력됩니다.

Untitled

문자로 보이지만 실제로는 HTML 소스로 되어있다는 것을 알 수 있습니다. 페이지 소스보기를 사용하면 결과 HTML을 확인할 수 있습니다.