系统是用Servlet+ExtJS写的,服务器是tomcat。
现在想在系统中实现防止同一用户重复登录,当一个用户已经在系统中登录后,如果再登录就弹出提示。
目前不能在数据库中加字段来验证用户的登录状态,所以想通过在服务器上维护一个Map,key是sessionID,value是用户名。当用户成功登录后就在MAP中加入一条记录。
在用户登录时将用户名和sessionID传到判断方法,来验证是否已经存在了记录。
目前基于的理论是,不同浏览器的sessionID不同,来做唯一验证。
现在不清楚的就是,在服务器上维护的这个MAP是否会占用很大的资源,系统的平均在线用户大概在200个左右。
烦请各位有过相关经验的指正一下错误。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
200个用户 能占用多少内存?
一个sessionid 加上 用户名,每个字母占两个字节,100个也就200字节。这样1k就能有5个用户。
200个用户40k!
你这个存在一定的危险性!比如用户强制退出或者浏览器崩溃,服务器的sessionid还没有消失,这样就会在一段时间内无法登陆系统。如果session超时设的短一些,这样也会带来很多问题。
如果是用户登录踢出上个用户会好些。
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)