JSP

Servlet GET, POST 한글 처리 방법(Encoding)

충 민 2022. 9. 18. 16:53

한글이 깨지는 이유

 

브라우저 -> web server -> dbms로 같은 내용의 한글이 서비스 처리를 하는 단계에서 

매번 다른 문자 코드를 사용하여 재표현되기 때문이다.

 

GET 방식: input type이 password인 경우 무조건 영어로만 받는다.(한글을 영어로 바꿔서 받음)

 

POST방식: input type이 text인 경우 무조건 깨져서 받는다.

                    input type이 password인 경우 한글이 영어로 바꿔서 받는다.

 

encoding 방법은 Get/Post Method 방식에 따라 다르다.

 

get 방식의 한글처리는

Servers/톰캣서버 폴더내에 있는 server.xml에서 <connector>에

URIEncoding="UTF-8"(EUC-KR, UTF-8 등 원하는 인코딩)을 추가하면 된다.

 

post 방식의 한글처리는

doPost 메소드내에서 설정한다.

setCharacterEncoding() 메소드를 사용하면 된다.

ex) request.setCharacterEncoding("UTF-8);

 

자세히====>

 

GET방식일 경우

  1.  server.xml 수정 
  2. Ctrl + F 를 사용하여  Connector  태그를 찾는다.
  3. 기본값으로 <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/> 이렇게 되어 있을 텐데 이 태그안에 URIEncoding="EUC-KR" 을 추가해줍니다. ex. <Connector URIEncoding="EUC-KR" connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>

 

 

 

POST방식일 경우

    • Servlet에서 request.setCharacterEncoding() 메소드 이용

ex. doPost() 메소드 안에 request.setCharacterEncoding("EUC-KR"); 추가

 

 

 

 

출처: https://chrismare.tistory.com/entry/한글깨짐현상-처리-JSPServlet [미래를 설계하는 개발자:티스토리]