java 用户A登陆后,另一用户B用同样的用户名密码登陆后,A不能进行操作,跳回登陆页面?

wyj1983 2008-12-29 04:37:09
用户A登陆后,另一用户B用同样的用户名密码登陆后,此时用户A不能再进行操作,跳回登陆页面?
这个怎么实现? 最好是代码!
...全文
421 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
getdate 2008-12-31
  • 打赏
  • 举报
回复
HttpSession session=request.getSession();

SessionListener listener=new SessionListener();
@SuppressWarnings("unused")
boolean boo=listener.isLogined(session, user.getUserid());

详细找我
wyj1983 2008-12-31
  • 打赏
  • 举报
回复
问题解决了。结贴!
谢谢各位提示!
hbwhwang 2008-12-30
  • 打赏
  • 举报
回复
看看大家有什么好办法
f147277262 2008-12-30
  • 打赏
  • 举报
回复
登录一个用户 就马上把原来登录的用户信息删掉.
shuai45 2008-12-30
  • 打赏
  • 举报
回复
我认为不是很麻烦:
1>通过session监听(SessionListener).用户登陆成功后将用户数据都放在容器中进行保存。(假如这个容器是个userList)
2>用户登陆成功前先到List中查询是否存在当前用户的信息,如果存在将存在的用户session清除掉,将当前用户数据再次放到list中。
3>最主要的就是如何发送信息告诉用户“相同帐户登陆,您被迫下线?”很简单。用dwr推送技术,就是服务给客户端发送数据
ace62 2008-12-29
  • 打赏
  • 举报
回复
每个用户登录后,分配一个临时的、唯一的id,每次操作校验这个id,如果不一致就禁止他操作(相当于他没有登录)
xuhaiyang 2008-12-29
  • 打赏
  • 举报
回复
实现HttpSessionListener,重写sessionCreated方法,维护登陆用户列表,当B登陆是,清空A的session就好了
kelwenqiu 2008-12-29
  • 打赏
  • 举报
回复
在数据库中增加登录状态字段(初始值0或1),每次用户登录的时候就将状态更改(每次都将其改成相反,就是如果检索
数据库的结果为0时,就将数据库改为1)然后把状态保存到session中,用Ajax定时检查session中的状态是否和数据库
的状态一致,不一致则将当前session销毁。
whuzjf1985 2008-12-29
  • 打赏
  • 举报
回复
终于变贫农了
诸葛登记 是可用分等级 还是技术分等级啊 为什么总技术分排名都不变的。。。。
whuzjf1985 2008-12-29
  • 打赏
  • 举报
回复
mark
hbwhwang 2008-12-29
  • 打赏
  • 举报
回复
mark
hz890 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fosjos 的回复:]
如果要实时退出的话,也只能ajax定时检测数据库中的登录信息,然后调用js退出登录

如果是操作时退出,那就方便很多,在服务端检测就行
[/Quote]
利用Ajax定时检测数据库中的登录信息是一个解决办法,(本质上需要(异步)刷新页面)。
我在想另外一个方法是否可行:
当用户B用同样的用户名密码登陆时,先更改其他同名用户的登录状态,
而在各个需要判断登录状态的页面里启用多线程机制定期判断用户登录状态,如果状态被更改则定向至登录页面
jaybaijie 2008-12-29
  • 打赏
  • 举报
回复
让用户列表存在于application里,
通过比较用户名(用户名应该是唯一的吧)来控制原用户的session,
都在服务器端进行...
zhendongloveyou 2008-12-29
  • 打赏
  • 举报
回复
监听器
qiyuan371 2008-12-29
  • 打赏
  • 举报
回复
在登录时检查该用户是否登录,如果登录就让前一个登录用户的请求跳到首页,不执行他所请求的路径,
或者用监听器吗,发现有两个登录就让前一个跳到登录页面吗
ffumax 2008-12-29
  • 打赏
  • 举报
回复
帮顶
joejoe1991 2008-12-29
  • 打赏
  • 举报
回复
把用这个用户名登录的最后登录者的IP保存下来,然后检测这个IP是不是当前正在操作的这个登录人的IP,如果不是,表示另外有人用这个帐号登录了,这时清理SESSION,跳回登录页面。
hejia12 2008-12-29
  • 打赏
  • 举报
回复
你这个就是在Session中存一个在线用户列表,每个用户登录之前先检查session中在线用户列表中没有当前用户才允许登录...
zou_wei_forever 2008-12-29
  • 打赏
  • 举报
回复
如果是cs结构就比较好办,bs结构的话,由于服务器端不能定位客户端,所以需要客户端定时查询服务器端,可以用ajax技术,
fosjos 2008-12-29
  • 打赏
  • 举报
回复
如果要实时退出的话,也只能ajax定时检测数据库中的登录信息,然后调用js退出登录

如果是操作时退出,那就方便很多,在服务端检测就行
加载更多回复(1)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧