본문 바로가기

WebStudy

jsp 수업정리 - 03 부제 : 한글 처리

get 방식과 post 방식에 따라 처리해주는 게 다르다.

 

get방식 일 경우

 

1. : get방식의 경우 

 

server 의 server.xml의 connector 부분을 추가.

 

<Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>

 

그리고 resp.setContentType("text/html;charset=utf-8");

 

작업을 해주면 get방식에서는 한글이 정상 작동이 된다.

 

 

2 : post 방식의 경우 (useBodyEncodingForURI="true" 명시하면 get도 가능)

 

req.setCharacterEncoding("utf-8");
  String name = req.getParameter("name");
  resp.setContentType("text/html;charset=utf-8");
  PrintWriter out = resp.getWriter();
  out.println("이름 : " + name);

 

get방식의 경우는 useBodyEncodingForURI="true" 속성을 꼭 줘야하지만 post방식은 기본값이다.

그렇기에 request setCha~ 가 가능하다.

 

3 : get, post방식 모두 에서는

 

변환해줄 클래스를 생성.

 

public class Hangul {
 public static String toKor(String str){
  try {
   return new String(str.getBytes("8859_1"), "utf-8");
  } catch (UnsupportedEncodingException e) {
   return null;
  }
 }
}

 

doPost() 매소드에서 추가 해주면된다.

post방식은 서버단에서 본문에 담겨져 넘어오기 때문에 get방식보다 조금더 번거로운 작업이 추가된다.

 

String name = req.getParameter("name");
  String korName = Hangul.toKor(name);
  resp.setContentType("text/html;charset=utf-8");
  //브라우저에게 보내주는 형식을 알려주는 것.
  PrintWriter out = resp.getWriter();
  
  out.println("이름 : " + name);
  out.println("변환이름 : " + korName);