Form에서 전송된 한글 다루기
HTML 폼에서 전송된 한글을 서버측에서 다룰 때, 전송방식(GET, POST)에 따라서 다른 방식을 사용한다.
GET방식으로 전송된 한글: new String(paramValue.getBytes("8859_1"), "KSC5601");
POST방식으로 전송된 한글: request.setCharacterEncoding("KSC5601");
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Hangul extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=euc-kr");
PrintWriter out = response.getWriter();
out.println("<html><head><title>한글 처리 예</title></head>");
out.println("<body>");
// HTML 폼에서 GET 방식으로 전송된 한글은 아래처럼 변환해 주어야 한다.
String name = request.getParameter("name");
name = new String(name.getBytes("8859_1"), "KSC5601");
out.println("서버로 전송된 한글이름:"+name);
out.println("</body>");
out.println("</html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=euc-kr");
PrintWriter out = response.getWriter();
// HTML 폼에서 POST 방식으로 전송된 한글은 아래처럼 설정해 주면 된다.
request.setCharacterEncoding("KSC5601");
out.println("<html><head><title>한글 처리 예</title></head>");
out.println("<body>");
String name = request.getParameter("name");
out.println("서버로 전송된 한글이름:"+name);
out.println("</body>");
out.println("</html>");
}
}