1. 웹에서 한글 파일이 깨지는 이유
톰캣은 기본적으로 ISO-8859-1이라는 방식으로 인코딩하여 문자를 전송한다.
이는 1바이트씩 전송을 수행하는데, 한 글자에 2바이트인 한글은 바이트가 나뉘기때문에 문자가 깨지는 것이다.
또한 웹서버에서는 UTF-8이라는 형식으로 2바이트로 문자를 전송해도, 웹 브라우저에서 다른 인코딩 방식을 지니고 있으면 한글이 제대로 출력되지 않는 문제가 발생한다.
2. 해결 방법
@WebServlet("/hello2")
public class Nana extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//UTF-8 형식으로 전송하는 것
response.setCharacterEncoding("UTF-8");
//웹 브라우저에 UTF-8 형식으로 읽으라고 하는 것
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
for(int i=0;i<100;++i)
{
out.println((i+1)+": 안녕 Servlet!! <br>");
}
}
}
response 매개변수를 통해 서버가 전송하는 형식과 웹 브라우저에게 읽으라고 하는 형식을 지정해준다.
'서블릿&JSP > 뉴렉쳐 서블릿&JSP강의' 카테고리의 다른 글
[서블릿/jsp] POST 요청 (0) | 2023.06.17 |
---|---|
[서블릿/jsp] GET 요청과 쿼리스트링 (0) | 2023.06.17 |
[서블릿/jsp] 이클립스를 이용한 서블릿 프로그래밍 (0) | 2023.06.17 |
[서블릿/jsp] Servlet 문자열 출력 (0) | 2023.06.16 |
[서블릿/JSP] 서블릿 객체 생성과 실행 방법 (0) | 2023.06.16 |