[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]
-