2010-08-04 66 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