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방식일 경우
- server.xml 수정
- Ctrl + F 를 사용하여 Connector 태그를 찾는다.
- 기본값으로 <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 [미래를 설계하는 개발자:티스토리]