java.lang.IllegalArgumentException: Control character in cookie value or attribute.


위 에러는 JSP의 쿠키(cookie) 설정에 한글을 사용할 경우 발생하는 에러이다.

다음과 같은 JSP 코드가 있다고 가정하자.


<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>쿠키 설정</title>

</head>

<body>

<%

Cookie c = new Cookie("MemberID", "12345");

c.setMaxAge(60*60);

c.setComment("회원 ID");

response.addCookie(c);

%>

<p/>

<a href="GetCookie.jsp">쿠키 확인하기</a>

</body>

</html>


위 코드를 실행하면 


JSP java.lang.IllegalArgumentException: Control character in cookie value or attribute.라는 에러가 발생한다.

에러가 발생하는 위치는 한글을 사용한 

c.setComment("회원 ID")에서 에러가 발생한다.


해결할려면 한글을 utf-8로 인코딩한 값을 set하거나 Base64로 인코딩한 값을 set하면 된다. 

물론 쿠키를 받는 곳에서 동일한 인코딩 값으로 받아야 할 것이다.



+ Recent posts