Java/Servlet

Servlet 출력 형식

60jong 2023. 4. 1. 01:40

Velog에 작성했던 포스트를 옮겼습니다:)

 

Servlet / JSP ) 4. Servlet 출력 형식

지금까지는 web.xml에 태그를 추가해 URL 매핑을 했다.web.xml을 통한 URL 매핑하지만 Annotation을 통해 URL을 매핑하는 방법도 있다.Annotation을 통한 URL 매핑 단순히 class 선언문 위에 @WebServlet()을 추가하

velog.io

브라우저의 Servlet 해석

브라우저가 응답을 받을 때 Servlet에 지정된 출력 형식이 없다면, 브라우저마다 자의적인 해석으로 Servlet을 출력.

@WebServlet("/hello")
public class Company extends HttpServlet {
    public void service(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        PrintWriter out = response.getWriter();

        for (int i = 0; i < 5; i++) {
            out.println("Hello Servlet");
        }
    }
}

를 예로 해서 /hello를 요청했을 때, 브라우저마다

  • html로 인식Hello ServletHello ServletHello Servlet
  • Hello Servlet Hello Servlet Hello Servlet - text로 인식

이렇게 다를 수가 있다.

출력 형식 지정

(1) response.setCharacterEncoding("UTF-8");
(2) response.setContentType("text/html; charset=UTF-8");

추가하면

(1) 클라이언트는 응답을 받는 문서를 UTF-8로 인코딩해 받아야함을 시사한다.

(2) 서버가 클라이언트에게 응답을 보낼 때, "text"로 이루어진 "html"문서라는 것을 명시하고, 이 문서는
UTF-8 문자로 이루어져있음을 시사한다.