programming/Spring

[Spring] tomcat query parameter 배열 처리하기

LeeBorn 2022. 3. 5. 17:31
반응형

Spring

타이틀은 Spring이라고 적었지만, 톰캣에서 처리하는 방법이다.

 

해당 타이틀은 Spring + tomcat 개발 시 쿼리 파라미터를 처리할 때 에러가 발생할 경우 처리하는 방법이다.

 

예를 들어 아래와 같은 방식으로 url을 호출받아야 하는 경우.

(다른 서버에서 나의 서버를 호출하는 경우다.)

mydomain.com?product[i][id]=PID0001

 

이러한 경우 "[" , "]"와 같은 문자 때문에 에러가 나서 제대로 처리되지 않을 수 있다.

 

이때는 톰갯의 server.xml 파일을 찾아 아래와 같이 수정하면 해결될 수 있다.

<Connector port="8080" protocol="HTTP/1.1"
	connectionTimeout="20000"
	redirectPort="8443" 
	URIEncoding="UTF-8"
	relaxedQueryChars="[\\]^`{|}"
/>

 

 

해당 부분을 처리하면 되는데,  relaxedQueryChars의 값을 채워주면 된다.

 

아니면 호출하는 쪽에서 encoding 하여 호출하면 더욱 쉽게 처리할 수 있다.

위 url을 UTF-8로 인코딩하여 호출하면 아래와 같다.

mydomain.com%3Fproduct%5Bi%5D%5Bid%5D%3DPID0001
반응형