注册 登录
编程论坛 J2EE论坛

在论坛中怎么做的人数统计,比如说某某在线,但是走了是怎么判断已经下线了

Gramary 发布于 2007-07-13 16:32, 1457 次点击

我看到好多论坛最下方都有人数统计,包括这个论坛,但是设计原理是什么呢???
一个用户登陆后,可以知道上线了,但是下线是怎么判断的呢??
哪位知道,指点指点小弟啊```

14 回复
#2
begonia2007-07-14 00:07
回复:(Gramary)在论坛中怎么做的人数统计,比如说某...

我也很想知道答案,哪位高手来帮忙解释下啊,谢谢啦

#3
stephen7222007-07-14 14:02
首先你要对session的原理要理解 可以参考
http://www.yyhweb.com/Article.htm?cId=2&fId=5&aId=3

当用户来访的时候可以通过HttpSessionAttributeListener来监听得到。
至于用户离开这个问题好像很难做到,个人认为原因有一下:
第一用户离开的因素有很多,关闭浏览器,电脑突然关闭,与服务器断开等等。
这些现象的发生服务器端是没法检测到的,故服务器就无法得知该session是否还在。
只有当在session有效时间范围内(这个时间可以在配置文件里设置),还没有任何活动时,服务器就会让session实效。
此时服务器认为用户离开了。
#4
begonia2007-07-14 15:41
楼上的,谢谢啦
#5
Gramary2007-07-14 18:42
HttpSessionAttributeListener 要怎么使用啊
请制点一下
#6
hardes2007-07-15 16:26
肯定是写一个类实现那什么接口的监听啊, 然后在web.xml中配置下啦
#7
wangliwei2007-07-17 08:30
楼上的说具体点好么
#8
hardes2007-07-17 21:37
以下是引用Gramary在2007-7-14 18:42:47的发言:
HttpSessionAttributeListener 要怎么使用啊
请制点一下

就拿这个来说吧,其实都是一个道理,这也是个监听器接口,就是监听session作用域中属性变化情况,我们只要写一个类实现该接口,怎么做就不用多说了吧,然后在在web.xml中配置该监听类就行了,在服务器软件启动的时候自动帮你实例化该对象监听你的session作用域中的属性变化情况,在web.xml中的这个节点<listener>中配置,相关属性设置在网上找找资料吧,很多的,在说也很简单.

#9
hardes2007-07-17 21:39

所以相应的也还有其他的监听接口,呵呵,比如说还有什么application监听接口啊什么的,举一反三嘛!!呵呵

#10
Gramary2007-07-19 10:57

谢拉`
懂了```

#11
almeteor2007-07-21 22:45
管他下线与否 session时间到了 就算下线!这个问题和回答的都很叫人郁闷!复杂化了!只用判断上线的sessionid就可以完成统计功能了吧?一个系统总得考虑用户错误操作和其他未知因素使浏览器或电脑关闭的情况!判断用户下线来统计是不可取的!

[此贴子已经被作者于2007-7-21 22:57:49编辑过]


#12
Gramary2007-07-23 09:03

什么方法可以判断sessionid呢???

#13
hardes2007-07-23 10:20
session的timeOut决定是否释放session占用资源,方式有两种:一种是请求超时,一种是手动结束会话.
其他疑问自己查找相关资料。
#14
guoxhvip2007-07-24 05:24

学习

#15
system322007-07-24 05:33
睡觉,明天看
1