gpt4 book ai didi

java - 是否有一种解决方案可以在重定向响应时在浏览器上保留 cookie?

转载 作者:可可西里 更新时间:2023-11-01 16:56:02 27 4
gpt4 key购买 nike

我正在为网络应用程序构建用户跟踪系统。人们可能来自许多网址。我想知道这些网址来自哪些网址。我这样设计网址:http://www.example.com/ref/XXXXXXX .

我创建了一个过滤器来处理传入的请求:

String cookieKey = "examplesite.cookie";
String cookieValue = referralIdentifier;
Cookie cookie = new Cookie(cookieKey, cookieValue);
cookie.setMaxAge(60*60*24*365);
((HttpServletResponse) response).addCookie(cookie);

HttpServletResponse resp = (HttpServletResponse)response;
resp.addCookie(cookie);
resp.sendRedirect("/");

执行此代码时,我无法在浏览器中看到设置的 cookie。

如果我将重定向更改为转发,我可以看到 cookie。我看到这篇博文how to track people with cookie and redirect博主建议使用代码重定向的地方。

所以我更改了代码并将 resp.sendRedirect("/"); 替换为

 resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
resp.setHeader("Location", "http://www.example.com/");

这里我可以在 Firefox 中看到 cookie,但在 Chrome 中看不到。

重定向后是否有跟踪用户的解决方案?

最佳答案

根据 http://www.javamex.com/tutorials/servlets/cookies_api.shtml默认情况下,cookie 对“请求设置 cookie 的父级的子路径”可见。

这可能是您的问题。要使 cookie 在所有路径上可见,您可以使用 cookie.setPath("/") 将路径设置为“/”。

关于java - 是否有一种解决方案可以在重定向响应时在浏览器上保留 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28788736/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com