开发者社区> 问答> 正文

java web系统,如何禁止同一用户重复登录?

落地花开啦 2016-03-26 15:00:44 1784

系统是用Servlet+ExtJS写的,服务器是tomcat。
现在想在系统中实现防止同一用户重复登录,当一个用户已经在系统中登录后,如果再登录就弹出提示。
目前不能在数据库中加字段来验证用户的登录状态,所以想通过在服务器上维护一个Map,key是sessionID,value是用户名。当用户成功登录后就在MAP中加入一条记录。
在用户登录时将用户名和sessionID传到判断方法,来验证是否已经存在了记录。
目前基于的理论是,不同浏览器的sessionID不同,来做唯一验证。
现在不清楚的就是,在服务器上维护的这个MAP是否会占用很大的资源,系统的平均在线用户大概在200个左右。
烦请各位有过相关经验的指正一下错误。

分享到
取消 提交回答
全部回答(2)
  • 一生有你llx
    2019-07-17 19:16:16

    200个用户 能占用多少内存?
    一个sessionid 加上 用户名,每个字母占两个字节,100个也就200字节。这样1k就能有5个用户。
    200个用户40k!
    你这个存在一定的危险性!比如用户强制退出或者浏览器崩溃,服务器的sessionid还没有消失,这样就会在一段时间内无法登陆系统。如果session超时设的短一些,这样也会带来很多问题。
    如果是用户登录踢出上个用户会好些。

    0 0
  • 落地花开啦
    2019-07-17 19:16:16

    200个用户 能占用多少内存?
    一个sessionid 加上 用户名,每个字母占两个字节,100个也就200字节。这样1k就能有5个用户。
    200个用户40k!
    你这个存在一定的危险性!比如用户强制退出或者浏览器崩溃,服务器的sessionid还没有消失,这样就会在一段时间内无法登陆系统。如果session超时设的短一些,这样也会带来很多问题。
    如果是用户登录踢出上个用户会好些。

    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题