我的问题在于以下我尝试在我要读取所有cookie并创建新对象并将其分配给Spring View之后添加新cookie和几行,问题是我的cookie不是补充说,一切都在页面重新加载后工作但不是同时...
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals(
"proizvod_" + Integer.toString(proizvodiId))) {
String kolicina_cur = cookies[i].getValue();
int pom = Integer.parseInt(kolicina_cur);
cookies[i].setValue(Integer.toString(pom + kolicina));
response.addCookie(cookies[i]);
}
}
}
Cookie[] cookiesN = request.getCookies();
ProizvodiCommand proizvodiCommand = new ProizvodiCommand();
if (cookiesN != null) {
for (int i = 0; i < cookiesN.length; i++) {
if (cookiesN[i].getName().startsWith("proizvod_")) {
String ime = cookiesN[i].getName();
String kolicinaN = cookiesN[i].getValue();
String id_s = ime.replace("proizvod_", "");
int id = Integer.parseInt(id_s);
// prepare for spring view....
}
}
}
我删除了几行用于弹簧数据准备,以便更好地查看。
当我尝试删除cookie并收集下面几行的所有现有cookie时会发生同样的问题,它会在页面重新加载后运行。
我试图添加一些延迟,但没有帮助...如果有人有解决方案继续与我分享:)
谢谢!
答案 0 :(得分:1)
首先,您发布的代码看起来只修改已存在的Cookie而不是添加新Cookie。
其次,每次调用request.getCookies()
都会在单个请求期间返回相同的cookie /值对。因此,您的第二个代码块看不到您的新Cookie。
尝试这些更改(在第二个代码块中):
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals(
"proizvod_" + Integer.toString(proizvodiId))) {
String kolicina_cur = cookies[i].getValue();
int pom = Integer.parseInt(kolicina_cur);
cookies[i].setValue(Integer.toString(pom + kolicina));
response.addCookie(cookies[i]);
}
}
}
ProizvodiCommand proizvodiCommand = new ProizvodiCommand();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().startsWith("proizvod_")) {
String ime = cookies[i].getName();
String kolicinaN = cookies[i].getValue();
String id_s = ime.replace("proizvod_", "");
int id = Integer.parseInt(id_s);
// prepare for spring view....
}
}
答案 1 :(得分:0)
如果我理解你的话,你会阅读带有请求的cookie,而不是在响应中添加cookie。然后期望看到随请求提供的cookie中添加的cookie ...