인코딩하는 방법 - Connector 엘리먼트에 URIEncoding 값, Connector 엘리먼트에 useBodyEncodingForURI 값

CODEDRAGON Development/JSP

반응형


 

인코딩하는 방법

·       URIEncoding  속성

·       useBodyEncodingForURI 속성

 

 

Connector 엘리먼트에 URIEncoding

·       가장 많이 사용

·       67번째 라인에 있습니다. (85번라인에도 동일한 구문이 존재합니다.)

·       모든 GET 형태의 파라미터를 톰켓(tomcat)안의 서블릿에 던져줄 때 자동으로 URIEncoding에 설정한 케릭터셋으로 URLDecoding을 합니다

 

Servers/Tomcat v7.0 Server at localhost-config/server.xml

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

 

 

 

인코딩 설정

서블릿 파일이 저장된 파일 인코딩 타입에 따라서 지정해 줍니다.

 

/Servers/Tomcat v7.0 Server at localhost-config/server.xml

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

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

 

 

 

Connector 엘리먼트에 useBodyEncodingForURI

·       useBodyEncodingForURI="true"로 되어 있다면 request.setCharacterEncoding()으로 설정한 케릭터셋으로 인코딩을 하게 됩니다. 만약 해당 request에서 request.setCharacterEncoding()을 설정하지 않았다면 URIEncoding에서 설정한 값을 이용합니다.

·       useBodyEncodingForURI="false"이거나 설정되지 않고 URIEncodig이 설정되어 있으면 GET 형태의 파라미터는 항상 URIEncoding 값으로 인코딩을 합니다.

 

Servers/Tomcat v7.0 Server at localhost-config/server.xml

<Connector URIEncoding="EUC-KR" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/> 

request.setCharacterEncoding("EUC-KR");

 

 

request.setCharacterEncoding()

request.setCharacterEncoding()은 인코딩을 위해 사용하는 org.springframework.web.filter.CharacterEncodingFilter에서 사용하고 있는 방식입니다.

CharacterEncodingFilter를 사용하면서 url-pattern /*로 한 경우라면 모든 리퀘스트에 대해서 request.setCharacterEncoding()를 사용하고 있는 것과 같아서 URIEncoding으로 설정된 값은 사용될 경우가 없어집니다.

request.setCharacterEncoding("EUC-KR");