没有从servlet

时间:2017-11-21 16:22:17

标签: servlets cookies

我有一个Sling Servlet,它使doPostdoPut返回一个json作为响应。

在代码中,我需要获取一个cookie,如果该cookie不存在,我需要创建它。 我的问题是我正在做response.addCookie但是如果我再次调用该方法,则cookie不存在,所以我不创建任何东西。我错过了什么?

这是我的代码的一部分: 这是存储(或更新)cookie的方法:

private SlingHttpServletResponse storeAppsCookie(SlingHttpServletRequest request, SlingHttpServletResponse response, String appsJsonFormat) {
        String username = getUsernameFromCookie(request);
        if(username.equals("")) return response;
        Cookie appsCookie = request.getCookie(this.appsCookieKey);
        if(appsCookie != null) {
            appsCookie.setValue(appsJsonFormat);

        } else {
            appsCookie = new Cookie(this.appsCookieKey, appsJsonFormat);
        }
        appsCookie.setMaxAge(30*24*60*60); //for 30 days
        appsCookie.setHttpOnly(true);
        response.addCookie(appsCookie);
        return response;
    }

以下是doGet方法中的最终代码:

String parsedContent = parseAppsToUpdate(request, appsArray);
            response = storeAppsCookie(request, response, parsedContent);
            response.setContentType("application/json");
            response.getWriter().write(userApps.toString());

1 个答案:

答案 0 :(得分:0)

我刚刚找到答案。 代码中缺少一个cookie路径: appsCookie.setPath("/") 通过此设置,现在可以保存cookie,我可以在浏览器端看到它。