一尘不染

在一个浏览器中针对不同用户的Cookie

tomcat

网站页面上有一些下拉菜单(用户只有在经过身份验证后才能访问该页面)a我想将此值保存到cookie中,并在用户返回我的网站时将其重新设置为下拉菜单。

将当前选择的下拉选项值保存到cookie并在以后检索它不是问题。但是,如果另一个用户在同一浏览器上登录,则会遇到一些问题。它从cookie值中获取以前用户保存的内容。

那么,从同一浏览器中为不同用户分离Cookie的好方法是什么?我当时正在考虑使用“ username-
dropdown”之类的名称来创建Cookie,但我对此表示怀疑,这是最好的解决方案。

我在Tomcat 8中使用Java。


阅读 928

收藏
2020-06-16

共1个答案

一尘不染

我将在这里进行猜测,您 不需要 将每个HTTP请求都发送给服务器的信息。您只需要在客户端存储信息(就可以根据需要通过ajax将其发送到服务器)。

如果是这样,我会使用本地存储,而不是Cookie。并且可以肯定的是,使用用户名或用户ID或类似的方法是合理的:

// Setting:
localStorage.setItem(username + "-dropdown", value);

// Getting:
var value = localstorage.getItem(username + "-dropdown");

或者,您可以使用方括号表示法:

// Setting:
localStorage[username + "-dropdown"] = value;

// Getting:
var value = localstorage[username + "-dropdown"];

几乎不使用括号表示法的唯一原因是,如果您需要在较旧的浏览器上填充本地存储(有些polyfill会退回到您的cookie中),但是所有现代浏览器以及IE8 都支持本地存储,因此浏览器真的是
非常 过时的,在这一点上。

2020-06-16