2012-01-18 3 views
4

, 나는 지금도 새로운 쿠키는 JSP/자바 쿠키를 삭제하는 방법

Cookie citizen = new Cookie("citizen",email); 
citizen.setMaxAge(3600); 
response.addCookie(citizen); 

설정 내가 쿠키

Cookie[] cookies = request.getCookies(); 

     for(int i = 0; i < cookies.length; i++) { 
      if (cookies[i].getName().equals("citizen")) { 
      cookies[i].setMaxAge(0); 
      response.addCookie(cookies[i]); 
} 
} 

을 파괴하는이 코드를 사용하지만 해요위한이 내 코드를 해요 쿠키 값 가져 오기. 도움을 주시면 감사하겠습니다 !!

+1

당신은 의미합니까 다음 요청에 클라이언트가 여전히 쿠키를 전송하는? –

+0

아니요, 위의 코드를 발견하여 사용했습니다. 그러나 작동하지 않습니다. –

+0

어떻게 "작동하지 않습니까?" 다음 요청에서 클라이언트가 여전히 쿠키를 전송한다는 것을 의미합니까? 그렇지 않다면 어떤 일이 일어나고 어떻게 될 것으로 예상됩니까? –

답변

4

당신에게 도움이 될 수 있습니다 ..

How can delete information from cookies?

행운을!

(당신이 요청에서 쿠키를 얻을하려고하면 다음 setMaxAge와 응답에 추가하기위한

0

이 줄을 추가하십시오 : 아래 링크

cookies[i].setMaxAge(0); 
//add this line 
cookies[i].setPath("/"); 
response.addCookie(cookies[i]); 
+0

죄송합니다. 그것은 작동하지 않습니다 : ( –

+0

미안해 그 – dan

0

올바른 옵션은

Cookie cookie = new Cookie("citizen", "citizen"); 
cookie.setMaxAge(0); 
cookie.setValue(""); 
response.addCookie(cookie); 

을 것입니다 ... 내가 더 쿼리 넣다을 알 수 0하자), 쿠키가 제거되지 않은 것을 볼 수 있습니다.

1

최대 연령을 0으로 설정하고 값을 ""로 설정 한 후에도 쿠키가 값을 유지하는 것과 비슷한 문제가 발생했습니다.

파이어 폭스를 사용하여 디버깅에 도움이되는 쿠키 속성을 살펴 보았습니다. 로그인 할 때 서블릿은 내 쿠키 클래스를 호출하여 쿠키를 설정하고 쿠키 경로는 "/ javawork /"입니다. 로그 아웃 할 때, JSP 페이지는 동일한 쿠키 클래스를 호출하여 max age를 0으로 설정하여 쿠키를 "삭제"합니다.하지만 JSP 페이지는 웹 응용 프로그램의 하위 폴더에 있었으므로 동일한 쿠키를 만들었습니다 name의 최대 수명이 0 일 때 "/ javawork/test_login /"경로로 새로운 쿠키를 만들었습니다.

"새로운"쿠키가 즉시 만료되었지만 원래의 쿠키는 여전히 존재했습니다. 쿠키 삭제 기능에서 "새로운"쿠키의 경로를 "/ javawork /"로 설정해야하며 최대 수명을 0으로 설정하고 추가하면 원래의 쿠키가 업데이트되어 제대로 로그 아웃됩니다.

도움이 되었기를 바랍니다.

0

이것은 나를 위해 작동 -

Cookie UIDCookie = new Cookie(COOKIE_KEY, ""); 
UIDCookie.setMaxAge(0); 
UIDCookie.setPath("/"); 
response.addCookie(qptUIDCookie); 
+0

당신이 생각 UIDCookie 대신 qptUIDCookie))) – Akvel

관련 문제