2
我一直在想,爲什麼我的應用程序已經允許重複投票一段時間,並最終調試了這個問題。Cookie值在Java Spring中成爲cookie名稱?
當您投票時,您會得到一個名爲「vote」的cookie,該值是您投票的「thing」的ID。
Cookie voteCookie = new Cookie("vote", "1901");
voteCookie.setMaxAge(60*60*24*365);
response.addCookie(voteCookie);
我檢查了客戶端(瀏覽器),並有一個名爲cookie的「投票」,其值爲「1901」
當我再讀取這個cookie在我的春節控制器是這樣的:
Cookie[] cookies = request.getCookies();
我現在有兩個餅乾:
CookieName: ["vote"] Value: [""]
CookieName: ["1901"] Value: [""]
其他餅乾一樣JSESSIONID是正確的:
CookieName: ["JSESSIONID"] Value: [000046KQaPe3T8gwXVuB3zhNrON:-1]
我在做什麼錯?
編輯:原來有一些代碼,用新追加的舊值:
voteCookie.setValue(voteCookie.getValue() + "," + cookieValue);
,這似乎是問題的根源。 「,」(逗號)之後的值成爲具有該名稱的另一個cookie。我不確定這是一個WebSphere Application Server問題還是什麼。但將分隔符更改爲「 - 」,一切正常!
我覺得有更多的比'新的Cookie(「投票」,「1901」) ;'。你能發佈調用這個構造函數的實際代碼嗎? – adarshr 2012-01-10 09:49:07
以及枚舉cookie的代碼。 – adarshr 2012-01-10 09:50:51
看起來cookie正被添加到響應中,所以不是這樣... – 2012-01-10 09:51:18