当前位置: 技术问答>java相关
怎样不允许两人用同一用户同时登陆??
来源: 互联网 发布时间:2017-03-23
本文导语: 一个账户只能一人登陆,不允许两人用同一用户同时登陆? 还有,用户没有直接退出时,一定时间会自动注销,怎样获得这个事件? 我试着用Listener: public class onLineUser implements HttpSessionBindingListener(){ ...
一个账户只能一人登陆,不允许两人用同一用户同时登陆?
还有,用户没有直接退出时,一定时间会自动注销,怎样获得这个事件?
我试着用Listener:
public class onLineUser implements HttpSessionBindingListener(){
public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName);
System.out.print(userName+"t 退出系统t"+(new Date()));
System.out.println(" 在线用户数为:"+getCount());
}
}
但必须等session中的值全失效后,才触发,而且所有用户都会注销
请帮忙给个详细地解决办法,谢谢
还有,用户没有直接退出时,一定时间会自动注销,怎样获得这个事件?
我试着用Listener:
public class onLineUser implements HttpSessionBindingListener(){
public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName);
System.out.print(userName+"t 退出系统t"+(new Date()));
System.out.println(" 在线用户数为:"+getCount());
}
}
但必须等session中的值全失效后,才触发,而且所有用户都会注销
请帮忙给个详细地解决办法,谢谢
|
俺 不是搞jsp的,不过思路应该一样,登录后记录其IP地址,发现再次访问时的IP地址与登录时的IP不一样拒绝访问给出错误提示.
每次访问时检查时间,减去上次访问记录的时间,如大于设定值,拒绝访问,清除在线记录,如小于设定值,刷新访问时间.
每次访问时检查时间,减去上次访问记录的时间,如大于设定值,拒绝访问,清除在线记录,如小于设定值,刷新访问时间.
|
检查cookie,强制每个浏览一个不同的cookie ID保存
发现不一样的cookie ID,而且此人已经登陆,就直接输出不允许登陆
发现不一样的cookie ID,而且此人已经登陆,就直接输出不允许登陆
|
你建一个在线用户表!如果用户登陆了,你将UserID,SessionID记录下来,
退出时再清除数据,然后你就判断有没有相同的UserID不就可以了
退出时再清除数据,然后你就判断有没有相同的UserID不就可以了
|
关闭浏览器可以调用onUnload(),可以通过此方法打开一个窗口用以注销!当然如果是断电的话就失效了!!!最好结合binbin说的方法使用,以前写过一个同学录,感觉还可以!