Tomcat 사용법 | URL Encoding 설정


tomcat 문서에 의하면 URL을 디코딩은 지정하지 않으면 디폴트로 ISO-8859-1으로 지정된다. 그러기에 설정을 하지 않고 한글을 GET로 정보를 넘기게 되면 깨진다. 반면에 POST로 전달되면 HTTP body의 입력 스트림의 디폴트는 UTF-8를 디코딩되기에 문제가 없다.

이는 tomcat 설정에 엔코딩을 변경해 주면 문제는 해결된다. {tomcat 설치 폴더}/conf/server.xml에 아래 <Connector> 요소에 아래와 같이 URIEncoding을 UTF-8로 설정한다.

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

아파치와 연결하기 위해 mod_jk를 사용할 경우에는 mod_jk 설정부분에도 위와 동일하게 변경한다.

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

참조

https://tomcat.apache.org/tomcat-9.0-doc/config/http.html