2012-08-29 6 views
0

쿠키가 이미 응답에 추가되었는지 확인해야합니다.존재하지 않는 경우에만 응답에 쿠키를 추가하십시오.

내 응답에 Set-Cookie 헤더가 두 번 수신되는 이상한 문제가 있습니다.

Set-Cookie:foo=bar; Domain=dev.mysite.com; Expires=Fri, 05-May-2062 04:05:43 GMT; Path=/

Set-Cookie:foo=bar; Domain=dev.mysite.com; Expires=Fri, 05-May-2062 04:05:43 GMT; Path=/

2- 헤더

정확히 동일하다. 스택을 디버깅 할 때이 코드를 두 번 호출합니다. 이 코드의 두 배는 내가 사용하고있는 웹 스택 때문이며 변경할 수 없습니다.

요청에 어떤 쿠키가 전송되었는지는 신경 쓰지 않지만이 헤더를 두 번 보내지 않습니다.

addHeader 방법을 통해 추가 된 쿠키를 찾는 쉬운 방법이없는 것처럼 보입니다.

response.addCookie(myCookie); 호출 후 응답 개체의 헤더를 검사하면 이상하게도 Set-Cookie 헤더가 표시되지 않습니다.

동일한 이름의 쿠키가 이미 응답으로 전송되지 않은 경우에만 응답에 쿠키를 추가 할 수 있습니까?

+1

저는 표준 접근법을 잘 모릅니다. HttpServletResponseWrapper를 사용하여이 문제를 해결하고 쿠키를 기억해야 할 수도 있습니다. – home

+0

예, 응답이 클라이언트에 전송 될 때까지 (요청의 일부로 다시 수신 될 때까지) "home"- (및 AFAIR)에서 언급 한 것처럼 쿠키는 프로그램에 액세스 할 수 없습니다. 유일한 옵션은 응답 생성에서 이미 설정 한 쿠키를 "기억"하는 것입니다. –

답변

0

집이 정확했습니다.

나는 HttpServletResponseWrapper 주위에 래퍼를 만들고 addCookie 방법으로 쿠키를 저장했습니다.

그런 다음 다른 쿠키를 추가하기 전에 쿠키가 목록에 있는지 확인합니다.

도움 주셔서 감사합니다.

관련 문제