天天看点

JAVAEE之单用户登录

[size=medium][b]单用户登录是系统中数据一直性的解决方案之一。[/b][/size]

[b]问题背景:[/b]

试想,如果同时有两个用户使用一个账号登录系统,

他们两个人需要对一批文章进行编辑。

都已经把同一篇文章读取到了浏览器中各自进行编辑后提交,

那么就会出现该文章只会保存一个人提交的结果。

先提交的那个人的将会被覆盖掉。

[b]核心思想:[/b]

背景:由于每次请求的 sessionId 都不一样。

确保:每个用户名只能对应一个 session

方法:

在全局变量中维护一个 session 列表。

如果相同的用户名,出现不一样的 sessionId,

说明该用户进行了第二次登录,

则使原来存在的 session 失效(移除 session )。

页面可以加轮询次数(时间)控制,

无需等到用户下一次手动提交请求。

[b]1、第一次登陆成功[/b]

说明:

这里不用把整个session放到全局变量中,

可以只放一个 seesionId 即可。

[b]2、拦截器拦截每一个请求路径,判断用户是否已经在别处登录[/b]

[b]3、前台ajax轮询用户当前状态[/b]

[b]4、清除当前session信息[/b]

[b]5、监听器[/b]

-