[Servlet
] --HTML코드 출력 문제--> JSP
--스파게티 코드 문제--> JSP MVC
-> Spring MVC
-> SpringBoot
브라우저가 응답을 받을 때 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
를 요청했을 때, 브라우저마다
Hello Servlet
Hello Servlet
Hello Servlet
Hello ServletHello ServletHello Servlet
이렇게 다를 수가 있다.
(1) response.setCharacterEncoding("UTF-8");
(2) response.setContentType("text/html; charset=UTF-8");
추가하면
(1) 클라이언트는 응답을 받는 문서를 UTF-8로 인코딩해 받아야함을 시사한다.
(2) 서버가 클라이언트에게 응답을 보낼 때, "text"로 이루어진 "html"문서라는 것을 명시하고, 이 문서는
UTF-8 문자로 이루어져있음을 시사한다.