프로그래밍 공부/Servlet과 JSP
Servlet 출력 형식의 이해
valid_ming
2021. 5. 31. 10:53
res.setCharacterEncoding("UTF-8");
res.setContentType("text/html; charset=UTF-8");
뉴렉처 강사님의 동영상 강의를 정리한 글입니다.
@WebServlet("/hi")
public class Nana extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
PrintWriter out = res.getWriter();
for(int i=0;i<100;i++) {
out.println((i+1)+": Hello!!<br>");
}
}
}
이 예제를 실행해보면

다음과 같이 실행된다. 이것은 서블릿 코드를 통해 전달받은 response 객체를 text로 읽어왔기 때문인데,
이와 같이 브라우저에 컨텐츠 형식을 알려주지 않은 경우 브라우저가 자의적인 해석을 하여 읽어올 수 있다.
따라서 content의 형식을 설정하고 넘겨주어야 한다.
response 객체에 컨텐츠 형식을 지정해보자.
우선 html 파일임을 알려주는 text/html을 추가하고, 인코딩방식과 디코딩 방식을 UTF-8방식으로 일치시킨다.
res.setCharacterEncoding("UTF-8");
res.setContentType("text/html; charset=UTF-8");
이러한 형식을 가진 객체를 브라우저가 읽을 때는 html로, UTF-8로 디코딩하여 읽게 된다.
