私のアプリケーションがしばらくの間、重複した投票を許可していて、最終的に問題をデバッグしたのはなぜかと思いました。Java Springでクッキーの値がクッキー名として登場していますか?
投票すると「投票」という名前のCookieが取得され、その値は投票した「もの」のIDです。
Cookie voteCookie = new Cookie("vote", "1901");
voteCookie.setMaxAge(60*60*24*365);
response.addCookie(voteCookie);
私は、このように私の春コントローラーでこのクッキーを読んだとき、「1901」
を私はクライアント(クローム)をチェックし、値が「投票」という名前のクッキーがあります:
Cookie[] cookies = request.getCookies();
私は今、2枚のクッキー持っている:JSESSIONIDのような他のクッキーが正しい
CookieName: ["vote"] Value: [""]
CookieName: ["1901"] Value: [""]
を:
CookieName: ["JSESSIONID"] Value: [000046KQaPe3T8gwXVuB3zhNrON:-1]
私は間違っていますか?
編集:
voteCookie.setValue(voteCookie.getValue() + "," + cookieValue);
そして、これが問題の原因であると考えられる:新しいものと古い値を付加し、いくつかのコードがあったが判明。 "、"(カンマ)の後の値は、その名前の別のクッキーになりました。これがWebSphere Application Serverの問題なのかどうかはわかりません。区切り文字を " - "に変更して、すべてが機能します!
いいです「」 ; '。このコンストラクタを呼び出す実際のコードを投稿できますか? – adarshr
クッキーを列挙するコードだけでなく、 – adarshr
クッキーがレスポンスに追加されているように見えるので、そうではありません。 –