Coding story/Error Error Error

(Error) Control character in cookie value or attribute.

지나가는개리씨 2022. 1. 22. 15:23
320x100

# 문제점

Stacktrace:] with root cause
java.lang.IllegalArgumentException: Control character in cookie value or attribute.
at org.apache.tomcat.util.http.LegacyCookieProcessor.needsQuotes(LegacyCookieProcessor.java:432)
at org.apache.tomcat.util.http.LegacyCookieProcessor.generateHeader(LegacyCookieProcessor.java:304) 

.
.
.
입력값을 받아와서 쿠키안에 넣고, 다른 JSP파일에서 이에 대한 정보를 갖고 오는 와중에 에러가
발생하였다. Control character in cookie value or attribute
즉, 쿠키 벨류나 속성안에 있는 character 문제라는 것으로 인식하였고 방법을 찾아보았다.

 

 

# 해결법

해당 쿠키안에 숫자나 영어를 넣어서 잘된 것을 확인한 후, 한글을 다시 넣어보니 같은 오류가 반복되서
URLEncoder라는 클래스를 통하여 강제로 "UTF-8"형식으로 바꾸어 자료를 넣어주었고 
URLDecoder를 통해서 자료를 갖고와서 출력하니 정상적으로 작동하였다.

# URLEncoder 적용

1
2
3
4
5
Cookie country = new Cookie("ShippingCountry",
            (request.getParameter("country")));
//바뀐후
Cookie country = new Cookie("ShippingCountry",
            URLEncoder.encode(request.getParameter("country"),"UTF-8"));
cs

 

# URLDecoder 적용

1
String country = URLDecoder.decode(cookie.getvalue(),"UTF-8");
cs
반응형