java - 如何跨多个网站唯一标识同一用户?

标签 java javascript mysql cookies project

我正在做一个广告网络作为学士学位项目。 我正在尝试跨多个网站识别同一用户。我的数据库中有一个 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/

上一篇:mysql合并两列

下一篇:php - 说表不存在

相关文章:

java - 使用 ConcurrentHashMap 实现并行性

java - 将页面添加到 Spring Boot 应用程序(极其基本)

c# - 我在 Mysql 中遇到希伯来语问题。我与 Visualstudio10、连接器和 linq 一起使用。我能做些什么?

java - 如何存储 Apache Storm 中所有 Spouts 和 Bolts 都可以访问的变量?

java - ssh -X(X11 转发)java swing 应用程序有缓慢的下拉列表

javascript - 正确插入表名

javascript - Node.js异步循环在下一个循环之前从函数回调

javascript - 将 HREF 与 jQuery 结合使用是否容易受到 XSS 攻击?

mysql - DROP 一个表的列,根据另一个表中的值

mysql - 由联合连接的多个表没有给出准确的结果