如何统计在线登录人数?
用jsp开发一个会员管理系统,如何统计在线登录人数?请给出思路?关键是如何判断用户已经注销、链接到其他网页、关闭浏览器...? 问题点数:20、回复次数:9Top
1 楼LewisFox(LewisFox)回复于 2002-05-20 16:16:01 得分 5
不可能准确知道。
客户端进行了注销操作的话你就可以知道,并释放session。但如果客户端转到了其它网站或直接被关掉了,没有任何消息会发到server端,server就只好等超时了。
你就统计server端的session数就成了,一般都这么做。Top
2 楼woxin(无心)回复于 2002-05-20 17:01:22 得分 0
如何统计server端的session数呢?最好用代码说明,非常谢谢Top
3 楼bazi(海风)回复于 2002-05-22 10:41:14 得分 0
session加上application可以实现
Top
4 楼woxin(无心)回复于 2002-05-22 11:12:22 得分 0
能说的详细些吗?Top
5 楼CAYU(中原)回复于 2002-05-22 12:22:23 得分 0
我也想知道 upTop
6 楼myjoy(笑看风云)回复于 2002-05-22 12:53:44 得分 0
up,up!Top
7 楼shine_car(I can do)回复于 2002-05-22 14:26:29 得分 15
哎,看看以前的帖子http://www.csdn.net/expert/topic/366/366150.xml?temp=.3149073
使用Servlet 2.3新增web application listener可以搞定写一个Listener类对session的创建和消除进行侦听。
import javax.servlet.*;
import javax.servlet.http.*;
public class CounterListener implements HttpSessionListener {
private int count = 0;
public synchronized void sessionCreated(HttpSessionEvent se) {
count++;
}
public synchronized void sessionDestroyed(HttpSessionEvent se) {
count--;
}
public int getCount() {
return count;
}
}
Top
8 楼shine_car(I can do)回复于 2002-05-22 14:29:40 得分 0
不过public synchronized void sessionDestroyed(HttpSessionEvent se) {
这个是要等到这个session超时了才会触发,这个时间是服务器可定义的session超时时间。(即用户多久没动作后,这个session就没效超时)Top
9 楼shine_car(I can do)回复于 2002-05-22 15:04:33 得分 0
有个错误static private int countTop




