본문 바로가기

Servlet/FORM data (한글처리)

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>");
 }
}