Java Cookie 添加/删除问题?

标签 java cookies spring-mvc

我的 cookie 问题在于,在我要读取所有 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....
        }


    }
}

我删除了几行来准备 Spring 数据,以便更好地查看。

当我尝试删除 cookie 并收集下面几行的所有现有 cookie 时,会出现同样的问题,它在页面重新加载后起作用。

我尝试添加一些延迟,但没有帮助...如果有人有解决方案,请继续与我分享:)

谢谢!

最佳答案

首先,您发布的代码看起来只修改已经存在的 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....

    }
}

关于Java Cookie 添加/删除问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408811/

相关文章:

java - 如何从java应用程序创建Windows服务

laravel - Laravel 存储用户 session 的位置

java - 如何使用 Spring 安全更新过滤器的 header 参数?

hibernate - 使用 Spring MVC + Hibernate + PostGreSQL 连接的用户登录页面

java - 关于java中枚举的帮助

java - 在运行时更改 Tomcat 中的日志记录级别?

java - 无法在 JBoss Fuse 上加载 JDBC 驱动程序

jquery - 使用 CORS (Access-Control-Allow-Origin) 响应 header 集执行 XSS 时,cookie 不会在 ajax 请求 header 中发送

magento - Magento 中的 Double Set-Cookie,导致某些用户无法登录

java - 获取名称为 DAO 类的 Bean 创建异常