이메일주소 쿠키에 저장하고 불러오기

-- JavaScript 2012. 8. 28. 10:35
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

이메일주소를 ID로 사용하는 사이트에서 로그인 성공 시 userid로 이메일주소를 쿠키에 저장한다.
그리고 나서 ID가 필요한 페이지들에 쿠키에서 그 값을 읽어와 표시해준다.

그런데, 분명 tigerfive@test.com로 쿠키를 생성하였는데, 불러온 값은 tigerfive만 불러온다.
검색을 통해 아래와 같이 URLEncoding, URLDecoding을 이용하여 문제를 해결하였다.


쿠키생성 (javas-ript)

function setCookie4Email(name, value, expDay)
{
 var cookieStr = name + "=" + encodeURIComponent(value) + "; path=/;";
 
 if (expDay) {
  var dToday = new Date();
  dToday.setDate(dToday.getDate() + expDay);
  cookieStr += " expires=" + dToday.toGMTString() + ";";
 }
 
 document.cookie = cookieStr;
}


쿠키읽기 (jsp)

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;


public static String getCookie(HttpServletRequest request, String name) throws UnsupportedEncodingException
{
    Cookie[] cookies = request.getCookies();
    String value = "";

    if (cookies != null) {
        for (int i = 0; i < cookies.length; i++) {
            if (cookies[i].getName().equals(name)) {
                value = URLDecoder.decode(cookies[i].getValue(), "UTF-8");
                break;
            }
        }
    }

  
    return value;
}


사이트의 구조로  쿠키를 읽는 것은 JSP로 처리되었으나 javascript로도 디코딩하면 된다.
추후에 시간이 허락되는데로 테스트 후 javascript버전으로도 올리도록 하겠다.

posted by 어린왕자악꿍