62,620
社区成员
发帖
与我相关
我的任务
分享[quote=引用 6 楼 jsshizhanab 的回复:] [quote=引用 5 楼 skgary 的回复:] 如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
[quote=引用 5 楼 skgary 的回复:] 如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
以前做的一个比较大气的,把登陆的用户信息存放在application中,在登陆时看application中查,有的话就清掉,没的话就登陆,不过纠结的一点是如果后来的操作快的话后来的就又登陆进去了,不过我提出的意见是记录用户IP,不过一个小组的也没去实现,都是懒蛋
[quote=引用 9 楼 abc_key 的回复:] 使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
可以使用spring security