怎么判断用户是登陆状态还是离开了!
一个网站,用户登陆后数据库有一条记录记录用户的状态,我怎么记录用户的状态。比如,用户甲登陆的时候就不能在登陆了,也不能在其他电脑上登陆
还有就是,当用户推出登陆的时候,我该怎么判断用户已经退出登陆的,可能是关闭网页,或是点退出按钮退出的登陆,我该怎么去判断下呢??
高手能给个确切可行的实例最好,能说的详细点也好,就是不要说的太笼统了,谢谢了!
------解决方案--------------------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删除
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------用户登录成功后,把用户信息和session的id 都放在 哈希map中,然后在放在application,如果登录的时候在过滤器中判断当前登录用户是否存在,如果存在就不让登录,如果以后扩展,想吧当前用户踢出系统,只要在list中吧用户remove就OK 了
------解决方案--------------------监听session
------解决方案--------------------用监听器listener
------解决方案--------------------
------解决方案--------------------登陆后存一个id到session, 加载每个页面都可以用过滤器过滤一下,看是否已经登陆了
如果是就可以直接访问,否则就可以跳转到登陆页面
至于不能在其他电脑登陆,感觉怪怪的。。。