需求:
java应用系统中不允许同一用户同时多人登录(异地同时登录);
1.判断出同一用户已经在使用,不让其登录并给出提示信息,
2.后登录者为确保可以登录,必须先注销掉正在使用的用户。
现状:采用实现HttpSessionBindingListener 完成了监听,1问题得到解决。
问题:问题2一直找不到好的办法,请求帮助
或者给点建议也可,怎么才能从后台中获取指定的HttpSession?
java应用系统中不允许同一用户同时多人登录(异地同时登录);
1.判断出同一用户已经在使用,不让其登录并给出提示信息,
2.后登录者为确保可以登录,必须先注销掉正在使用的用户。
现状:采用实现HttpSessionBindingListener 完成了监听,1问题得到解决。
问题:问题2一直找不到好的办法,请求帮助
或者给点建议也可,怎么才能从后台中获取指定的HttpSession?
解决方案 »
- 【求教】定时删除过后,MySql无法打开
- HQL的一个基本问题
- 求!Jsp JavaBean Servlet 分页思路.
- 将重复显示的数据存到session中,是不是比检索数据库效率高
- 请教各位大哥关于在struts结构的系统中使用javascript的问题。
- 寻求 :推荐一下javascript的最好的书
- servlet的权限
- jsp求助.usebean 无法读取class文件?
- 我装了jdk1.5+eclipse3.2+myeclipse5.0但是在eclipse里面不能新建html和jsp文件?
- 在jbuild里如何连另一台计算机上的oracle数据库?
- 乱码问题。。。
- 关于一个任务池的开发思路,大家来讨论一下
像你这样
现状:采用实现HttpSessionBindingListener 完成了监听,1问题得到解决。
定时扫描~~
把没在的改过来·~~~[笨办法]
一:1.用户登录 --2.去读数据库判断是否在线 -- 3.不在线 将数据库状态置为在线 -- 4.正常退出 -- 5.数据库状态置为注销。
二:1.用户登录 --2.去读数据库判断是否在线 -- 3.在线 将数据库状态置为在线 -- 4.返回信息 提示可注销正在使用的用户 -- 5.修改数据库 将在线改为注销 -- 流程一。
特例:非法退出。
个人感觉操作数据库不太好。
现在问题的难点是 我怎么能通过HttpSession 的唯一标识 比方 Sessionid获得正在使用者的HttpSession 这个样子就好办了。
考虑到大用户量的话遍历全部的HttpSession 来对比Sessionid 是否又有性能问题。
还望大家继续讨论以便找到更好的解决方案!!
http://topic.csdn.net/u/20090617/00/c6b186fc-f458-4507-8b04-dd493c64ff18.html?seed=1824722459&r=58912289#r_58912289
我们可以做的就是 如果用户在多长时间之内没有请求 就视为下线 然后修改数据库的用户状态
163的邮箱就是这么做的..个人意见!
这办法可行
//查看是否设置了application如果没有则设置新的
if(allUser==null){
allUser=new ArrayList();
allUser.add(user);
application.setAttribute("allUser",allUser);
session.setAttribute("loginuser",user);
out.println("<script>window.location.href='../chat/mess.jsp';</script>");
}else{
//判断application中是否存在该用户
boolean nohave=true; //初始化用户是否登陆状态为true
//遍历list查看该用户是否登陆
for(int i=0;i<allUser.size();i++){
User hUser=(User)allUser.get(i);
//如果该用户已经登陆
if(user.getUserName().equals(hUser.getUserName())){
nohave=false;
out.println("<script>alert('该用户已经登陆了');window.location.href='../chat/login.jsp';</script>");
}
}
//用户没有登陆则让用户登陆并添加到list中
if(nohave){
allUser.add(user);
session.setAttribute("loginuser",user);
out.println("<script>window.location.href='../chat/mess.jsp';</script>");
}
在得知“该用户已经登陆了”的情况下,踢掉已经登录的用户,继续登录,怎么实现?还有非法退出如何处理的?