站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题统计在线人数问题!

统计在线人数问题!

摘要: 统计在线人数问题!


1、统计在线(包括游客)人数?
2、统计登陆的用户人数?
3、用户非正常退出解决方法?
4、游客的离开如何统计?


1:用户身份识别机制
2:session监听机制。

结合起来就可以了


能不能详细点?


不好意思,我比较懒,难到叫我写一大段程序出来吗?
我只是给你指条路而已,其他还是靠你自己8,求人不如求己呀




再详细点:
1:所有用户登陆,包括游客,都登记在服务器用户表中,这个表是内存里,不是在数据库的。
2:内存表里放的是用户对象,里面有用户标识和用户角色类别。
3:所有统计功能对用户表进行分类统计就可以得到。
4:用户登陆的时候建立session,session里有个指向用户对象的引用,同时对session进行监听
5:实现session超时事件, 超时后把对应的用户对象从用户表里删除掉


前4个搞定了
还有第5个 不知道 具体怎么实现



1.//session 监听器统计在线人数(包括游客),存放在application对象里
public class SessionListener implements HttpSessionListener {
private Logger logger=Logger.getLogger(this.getClass());

private long count=0;
public synchronized void sessionCreated(HttpSessionEvent se) {
this.count=this.count+1;
se.getSession().getServletContext().setAttribute("count",this.count+"");
}
public synchronized void sessionDestroyed(HttpSessionEvent se) {
this.count=this.count-1;
se.getSession().getServletContext().setAttribute("count",this.count+"");
}
}
把监听器注册到web.xml里

listener.SessionListener//这里写上面那个监听器类的全名,也就是包括包名和类名



2.统计用户在线数量
在用户表中添加一个是否在线字段,当用户登陆的时候修改字段为在线,在上面session销毁的事件里修改改用户为离线,根据是否在线字段查询出在线用户总数量...


cookie加session监听器


3.用户非法退出的时候,直接关闭浏览器的时候可以用JS监听浏览器关闭事件,在关闭事件里提交服务器把用户设置为离线.
如果是用户正在浏览,突然电脑断电,这种没办法解决的.



4.游客离开时,和用户离开时,都要调用session.invalidate();让session过期


谢谢大家

listener.SessionListener

顺便问一下:是不是只能注册一个监听器注册到web.xml里??
或者 有的类不行?
我自己写的类可以注册吗?



是自己写的类


还有 我有一个工程 注册监听器时都是失败!
新建了一个 就没问题,


那就不知道了...


搞不清楚


用count 来统计


也不知道是什么回事!我的工程只能加一个监视器!
可是我拿以前备份的来做又可以加两个!郁闷ING!
不过现在总算可以 计算出再线人数了!包括登陆人数也搞定!
还差离线问题没有搞定!还须继续努力!


标记


↑返回目录
前一篇: 菜鸟问题:关于MyEclipse的JSP页面问题
后一篇: java字符串问题。