java web怎么实现限制登录?

半醒半梦° 2016-04-27 10:34:12
最近要做一个功能,一个web项目,如果同一个账号我在一台机器上登录后,在另外一台电脑就不能登录,除非前面那台登录的电脑session超时。
...全文
487 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vswen5 2016-05-05
  • 打赏
  • 举报
回复
弄一个静态全局map变量 key存登录名 value存登录时间。登录时 判断登录名是否存在map中 存在跳转到已登录过页面 不存在就登录成功并将登录名存入session和map中。 最后还要做监听session销毁事件 将map中的登录名清掉
一天zijie一夜 2016-04-29
  • 打赏
  • 举报
回复
使用session.getServletContext().setAttribute(),登录时进行检查记入,退出时进行删除。 同时在页面中当onbeforeunload时,登录信息删除。
迷雾骑士 2016-04-29
  • 打赏
  • 举报
回复
可以自己写个服务器缓存,登录时验证缓存中是否存在这个账号,不存在就缓存登录账号和时间戳,存在则再验证缓存中的时间戳是否超时(失效,这里可以自己定义一个超时时间)。每次登录都进行这个验证,通过就允许登录,否则不允许。这样也不会有“浏览器会话都会保存一个session标识”的问题。
迷雾骑士 2016-04-28
  • 打赏
  • 举报
回复
直接将登录ID放在Session中,如果Session不失效,就不能再次登录,Session失效了,就可以再次登录
半醒半梦° 2016-04-28
  • 打赏
  • 举报
回复
[quote=引用 4 楼 u010448530 的回复: 但是,我发现了一个问题,session先不考虑其他非正常退出的情况,我测试在其他电脑上访问session就是为空的额,好像是每个浏览器会话都会保存一个session标识!
tianfang 2016-04-28
  • 打赏
  • 举报
回复
服务器session管理中 对IP进行管理 具体方法看你使用哪个服务器
水滴滴 2016-04-27
  • 打赏
  • 举报
回复
判断服务器端session是否存在,如果存在的话就返回已经登录结果,提示不能多点登录
  • 打赏
  • 举报
回复
放session里,登陆时验证

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧