我正在为Web应用程序构建用户跟踪系统。人们可能来自许多网址。我想知道来自哪些网址。 我设计了这样的网址:http://www.example.com/ref/XXXXXXX。
我创建了一个Filter来处理传入的请求:
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中看不到。
重定向后是否有跟踪用户的解决方案?