JSP에서는 GET/POST 방식을 이용하여 데이터를 주고받습니다.
데이터가 영어로 되어 있으면 문제가 발생하지 않지만, 한글로 주고받을 경우 깨지는 현상이 가끔 발생합니다.
이 문제를 해결하기 위해서는 server.xml 파일의 일부 문장을 수정하거나 데이터를 받는 JSP 파일의 문장 처음 부분에 특정 문구를 삽입해 줄 필요가 있습니다.
1. GET 방식 해결 방법
GET 방식으로 한글로 된 데이터를 주고받을 때 생기는 문제를 해결하기 위해서는 Tomcat 서버를 실행했을 때 생기는 Servers - Tomcat v9.0 Server at localhost-config - server.xml 파일의 일부를 수정하면 됩니다.
63번째 줄에 Connector로 시작하는 태그를 찾습니다. 그리고 태그 닫히는 끝부분에 URIEncdoing="EUC-KR"이라고 삽입해 주면 GET 방식에서 한글 깨짐 현상이 해결됩니다.
<Connector URIEncoding="EUC-KR" connectionTimeout="20000" maxParameterCount="1000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
위 코드를 대신 삽입하면 됩니다.
2. POST 방식 해결 방법
POST 방식으로 한글로 된 데이터를 주고받을 때 생기는 문제를 해결하기 위해서는 <form> 태그 안에 보내는 방식을 POST로 하기 위해 method=post를 추가해 줍니다.
그리고 <body> 태그 바로 안에
<% request.setCharacterEncoding("UTF-8"); %>
위의 코드를 추가하면 됩니다.
위 코드는 문자 타입으로 받아 올 때, UTF-8로 인코딩을 하겠다는 의미입니다.
보내는 쪽과 받는 쪽 둘 다 UTF-8로 바꾸면 해결됩니다.