2010-08-04 65 views
0

我的问题与饼干在以下我尝试添加新的cookie和几行后,我要读取所有的cookie,并使新的对象,并将其分配给春天视图,问题是,我的饼干不添加,一切都重新加载页面后而不是在同一时间的作品...Java 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

整个代码是在handleRequest()方法没有什么帮助。 – vaske 2010-08-04 18:55:20

+0

思考......今天早些时候有人问了一个问题,为什么.NET会根据响应cookie更新其请求Cookie。 – Powerlord 2010-08-04 20:03:52

回答

0

如果我理解你是对的,你可以阅读请求附带的cookie,而不是将cookie添加到响应中。然后期望在请求中附带的Cookie中看到添加的Cookie ...

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.... 

    } 
} 
+0

这是一个好的开始,但仍然有相同的问题:/ – vaske 2010-08-05 13:36:54

+0

你在调试器中看到什么? – 2010-08-05 15:23:57