Java Web/Servlet&JSP
[Servlet] 한글(UTF-8) 인코딩 설정
Developer 수한
2021. 7. 14. 13:51
Servlet 한글(UTF-8) 인코딩 설정
서블릿에서 PrintWriter와 같은 클래스을 통해 한글을 입력하여 jsp 파일로 내보내는 경우, 그리고 폼 태그에서 입력한 값이 서블릿으로 넘어올 경우에 인코딩 설정이 되어 있지 않으면 한글이 정상적으로 출력되지 않습니다. 아래와 같이 서블릿의 메소드 시작 부분에 인코딩 설정을 해주면 정상적으로 출력됩니다.
response.setContentType("text/html; charset=utf-8");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
@WebServlet("/UserHomeMain")
public class UserHomeMain extends HttpServlet {
private static final long serialVersionUID = 1L;
public UserHomeMain() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 넘어온 파라미터의 인코딩 설정을 UTF-8로 설정
request.setCharacterEncoding("utf-8");
// HTML이 UTF-8 형식이라는 것을 브라우저에게 전달
response.setContentType("text/html; charset=utf-8");
// 서블릿을 통해 생성되는 HTML 파일의 인코딩을 UTF-8로 설정
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<script>");
out.println("alert('성공');");
out.println("</script>");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}