日期:2014-05-18  浏览次数:20924 次

怎么判断用户是登陆状态还是离开了!
一个网站,用户登陆后数据库有一条记录记录用户的状态,我怎么记录用户的状态。比如,用户甲登陆的时候就不能在登陆了,也不能在其他电脑上登陆

还有就是,当用户推出登陆的时候,我该怎么判断用户已经退出登陆的,可能是关闭网页,或是点退出按钮退出的登陆,我该怎么去判断下呢??
高手能给个确切可行的实例最好,能说的详细点也好,就是不要说的太笼统了,谢谢了!

------解决方案--------------------
session, yong guolvqi
------解决方案--------------------
用session控制应该可以实现
------解决方案--------------------
其实你问的实际上就是一个问题:就是怎么样知道用户是否在线?
 可以用Session来判断,因为一般来说你每个用户的登陆信息,你都要存进Session里面
只要Session的值是空的或者已经失效,那么就可以说用户已经退出了!!
------解决方案--------------------
当用户登陆的时候把数据库代表用户状态的值改成1(1代表登陆状态),刚用户再次登陆的时候,去数据库判断这个用户的状态是不是1,如果是的话给个提示已经登陆.

------解决方案--------------------
用session
用户登陆后创建session
再次登陆时验证该session是否存在
------解决方案--------------------
下面这段代码可以判断用户关闭了浏览器
<script type="text/javascript">
function window.onbeforeunload()
{
if (event.clientX>document.body.clientWidth && event.clientY<0 || event.altKey){ 
//这里可以使用js进行跳转,跳转到你的servlet中对数据进行操作
//例如:window.open("/login/index.do?method=logout"); 
}
}
</script>
------解决方案--------------------
楼上的方法可以试验下。 ÷
这个问题的难点,就是判断用户是否退出的问题。
如果是直接关闭浏览器,退出的动作不容易捕捉。
------解决方案--------------------
用户甲登陆的时候就不能在登陆了,也不能在其他电脑上登陆 
这个你去ip放到数据库。。。对应。。。退出的时候把这个字段删除 就好了
------解决方案--------------------
可以创建一个user list,保存用户ID和session id,登陆的时候只要判断user list里是否已经存在就行了,再来就是写个监听Http会话的特殊servlet,可以通过HttpSessionListener接口监听Http会话的创建,当session销毁时候执行相应的代码,即把user list里session id所对应的用户ID删除
------解决方案--------------------
探讨
引用:
当用户登陆的时候把数据库代表用户状态的值改成1(1代表登陆状态),刚用户再次登陆的时候,去数据库判断这个用户的状态是不是1,如果是的话给个提示已经登陆.


恩,我是希望能这样,但是,用户退出了,我得把数据库改过来啊,要不然,以后用户登陆了,老是提示已经登录了,哪不就成一次性的了吗。‘

现在我想知道。怎么记录用户的状态。怎么能随时知道用户的登陆状态,在用户退出时,能及时改变…

------解决方案--------------------
探讨
引用:
引用:
当用户登陆的时候把数据库代表用户状态的值改成1(1代表登陆状态),刚用户再次登陆的时候,去数据库判断这个用户的状态是不是1,如果是的话给个提示已经登陆.


恩,我是希望能这样,但是,用户退出了,我得把数据库改过来啊,要不然,以后用户登陆了,老是提示已经登录了,哪不就成一次性的了吗。‘

现在我想知道。怎么记录用户的状态。怎么能随时知道用户的登陆…

------解决方案--------------------
用户登录成功后,把用户信息和session的id 都放在 哈希map中,然后在放在application,如果登录的时候在过滤器中判断当前登录用户是否存在,如果存在就不让登录,如果以后扩展,想吧当前用户踢出系统,只要在list中吧用户remove就OK 了
------解决方案--------------------
监听session
------解决方案--------------------
用监听器listener
------解决方案--------------------
探讨
用监听器listener

------解决方案--------------------
登陆后存一个id到session, 加载每个页面都可以用过滤器过滤一下,看是否已经登陆了
如果是就可以直接访问,否则就可以跳转到登陆页面

至于不能在其他电脑登陆,感觉怪怪的。。。