怎样判断一个用户是否在线?

zhouzm 2003-04-09 10:51:46
一般是怎样判断一个用户是否在线?是否用数据库来保存用户状态,如果登陆则把用户状态设置为在线,如果用户关闭网页,怎样判断用户不在线?
...全文
229 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
renyong 2003-04-09
  • 打赏
  • 举报
回复
vick(瞌睡虫)
reduce()里submit一个request
renyong 2003-04-09
  • 打赏
  • 举报
回复
kyouyouCafe(kyouyou

http://expert.csdn.net/Expert/topic/1637/1637521.xml?temp=.3022119
vick 2003-04-09
  • 打赏
  • 举报
回复
hch9230(走路的人)

能知道用户关闭窗口的,我曾经亲自做过聊天室!
<body onunload='reduce()'>

在这个reduce()里可以作处理,把application中的该用户减去!

请问你怎么用js来处理java函数和方法?
ASP差不多,因为有active x嘛
kyouyouCafe 2003-04-09
  • 打赏
  • 举报
回复
我也想知道session的有效时间是多少?
可以改吗?
手艺人杨柳 2003-04-09
  • 打赏
  • 举报
回复
going down
super_zzw 2003-04-09
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1547/1547682.xml?temp=.9748041
renyong 2003-04-09
  • 打赏
  • 举报
回复
njyyao(yaoyao) 严重同意

方法有很多,可以将登陆的用户放在一个hashtable里,再将这个hashtable放在app里。
每个用户对象里放入这个用户上次动作时间。

或是将所有登陆的用户放在一个stateful session bean里,和上面的方法大同小易。

或是对每个登陆的用户都建一个stateful session bean,当这个session bean被
passivate的时候,视为用户超时,但是问题是session bean被passivate的时机我们
无法控制,weblogic里可以设两个参数控制,但是并不能绝对的控制passivate的时机,
哪位大侠对这个有研究,希望不吝赐教。

有关在线用户的问题是,如果用户不是点“退出”,而是:
1,用户关闭窗口,可以用onunload()解决
2,用户长时间无动作。session失效。但是session被destroy的时候,我们有什么方法
可以感知?例如weblogic里,一个session失效,as会出现什么事件?如果没有我们可以
感知的事件,那是不是可以定时的检查user hashtable里各个用户的上次动作时间,如果
超时,我们可以将这个用户从user hashtable里去掉,这个定时检查怎么实现?哪位大侠
有好的办法。
secrets001 2003-04-09
  • 打赏
  • 举报
回复
出个主意,5秒自动提交,如果一段时间(10秒,考虑网络延时)没有受到该用户的信息,就可认为它吊线了
tingod 2003-04-09
  • 打赏
  • 举报
回复
to 13060939425(我是煤碳商人)

没试验过,不过估计可以吧。
session超市登出的话,可以考虑保存所有session id而非用户名
hch9230 2003-04-09
  • 打赏
  • 举报
回复
能知道用户关闭窗口的,我曾经亲自做过聊天室!
<body onunload='reduce()'>

在这个reduce()里可以作处理,把application中的该用户减去!
13060939425 2003-04-09
  • 打赏
  • 举报
回复
to tingod(┞┧○┟┦○) :
在application中,我只用过上下文getServletContext().getAttribute()
我在用户登录时,把它的登录信息往上下文中放,再做一个登出程序,让他删除上下文,行吗?


如果,它没有登出,也没有<body onClose>,而是通过session超时登出的,怎么办??
tingod 2003-04-09
  • 打赏
  • 举报
回复
调用js的事件
<body onClose='fun()'>
zhouzm 2003-04-09
  • 打赏
  • 举报
回复
最关键的是我怎么知道用户关闭窗口了?上次我做的聊天室也有这个问题。
njyyao 2003-04-09
  • 打赏
  • 举报
回复
将登录的用户ID放在一个Hashtable里。
具体去看Hashtable的API。
zhouzm 2003-04-09
  • 打赏
  • 举报
回复
to tingod(┞┧○┟┦○) :我怎么知道用户关闭窗口?
tingod 2003-04-09
  • 打赏
  • 举报
回复
可以考虑在application中用一个变量来保存所有登陆用户信息。
用户登陆后把用户名或其他相关信息追加到该变量,用户注销或关闭窗口的时候在变量中把该用户信息消除。
Brain 2003-04-09
  • 打赏
  • 举报
回复
实现HttpSessionBindingListener接口,给一个例子:
http://www.javaresearch.org/article/showarticle.jsp?column=2&thread=2164

81,115

社区成员

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

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