我正在做一个广告网络作为学士学位项目。 我正在尝试跨多个网站识别同一用户。我的数据库中有一个 USER 表,其 ID 作为 auto_increment 数字。
在我跟踪的网站中,我包含以下 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 个横幅的队列,我想向该用户显示它们。 (仅当用户第一次访问此网站时,否则我必须显示队列中剩余的横幅。也不知道如何执行此操作,我可以将队列保留在 session 中吗?)。
问题是:如果我在 servlet 中的响应中添加 cookie,当同一用户访问另一个网站时它是否可用?
我有这个:
Cookie cookie = new Cookie("DisplayedBanners",visitedBanners); //
response.addCookie(cookie);
如何唯一地识别用户?如何生成一个唯一的 ID 来保存在 cookie 和数据库中,这样当同一个用户访问另一个网站并调用我的 servlet 时我就会知道他是谁。
非常感谢。
最佳答案
如果您为此使用 session ,横幅队列也将不起作用。 session 在服务器上维护。如果您访问其他站点,相同的旧 session 将无法在这里工作。
我建议您将此信息保存在数据库中。
因此,请将带有 user_id 的 last_shown_banner_tag 保留在单个表中。 这个表应该是各个网站通用的。
关于java - 如何跨多个网站唯一标识同一用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6200530/