2012-08-29 67 views
0

我需要檢查cookie是否已添加到響應中。如果它不存在,只添加cookie到響應

我有一個奇怪的問題,我的回覆收到兩個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頭是完全一樣的。當我調試堆棧時,調用此代碼兩次。這段代碼的翻倍是由於我使用的web棧,我不能改變。

我不在乎在請求中發送了哪些cookie,但我不希望這個頭文件發送兩次。

看起來似乎沒有簡單的方法來查找通過addHeader方法添加的Cookie。

在調試期間,奇怪的是,如果我在response.addCookie(myCookie);調用後檢查響應對象中的標題,我看不到Set-Cookie標題。

有沒有一種方法,我只能添加一個cookie的響應,如果相同名稱的cookie尚未在響應中發送?

+1

我不知道標準的方法。你可能需要使用HttpServletResponseWrapper解決這個問題,並記住那裏的cookies?! – home

+0

是的,正如「家庭」 - (和AFAIR)所述,直到將回復發送給客戶(並作爲請求的一部分收回),您的程序將無法訪問這些Cookie。您唯一的選擇是「記住」您在響應代中已經設置了哪些cookie。 –

回答

0

首頁是正確的。

我創建了一個圍繞HttpServletResponseWrapper的包裝並將Cookie存儲在addCookie方法中。

然後我檢查在添加另一個之前cookie是否存在於列表中。

感謝您的幫助。

相關問題