java如何在多个网站上唯一标识同一用户?
我正在做一个广告网络作为学士学位的一个项目。 我我试图在多个网站上识别同一个用户。我的数据库中有一个用户表,ID是一个自动递增的数字
在我跟踪的网站中,我包含了以下Javascript:
function OnLoad()
{
var requestURI = window.location;
var resolution = screen.width + 'x' + screen.height;
var colorDepth = screen.colorDepth;
var query = '?requestURI=' + encodeURIComponent(requestURI)
+ '&resolution=' + encodeURIComponent(resolution)
+ '&websiteid=' + encodeURIComponent(id);
document.getElementById("body").innerHTML = "<img src ='http://dan-vaio:8080/licenta/bannerimg.gif'" + query + " width = 500 height = 200 />"; // this is the place where i want to display my banner
}
在服务器端调用了一个横幅选择算法,我得到了一个由5个横幅组成的队列,我想显示给这个用户。(只有当用户第一次访问此网站时,否则我必须在队列中显示剩余的横幅。我也不知道如何执行此操作,是否可以将队列保留在会话中?)
问题是:如果我将cookie添加到servlet中的响应中,那么当同一用户访问另一个网站时,cookie是否可用
我有这个:
Cookie cookie = new Cookie("DisplayedBanners",visitedBanners); //
response.addCookie(cookie);
如何唯一标识用户?如何生成一个唯一的ID保存在cookie和数据库中,这样当同一个用户访问另一个网站并调用我的servlet时,我就知道他是谁了
非常感谢
# 1 楼答案
这里解释了如何使用PHP实现多域cookie(需要调整Apache)
http://www.tutorialized.com/tutorial/Implementing-Cross-Domain-Cookies/372
# 2 楼答案
如果您为此使用会话,则横幅队列也将不起作用。会话在服务器上维护。如果您转到其他站点,相同的旧会话在此处将不起作用
我建议您将这些信息保存在数据库中
因此,将最后显示的带有用户id的标题标记保存在一个表中。 此表应在网站中通用