就是放在application中一个变量,不过网络这种东西永远不可能完全精确统计只能大概估计一个数量!
例如我登录你的网站,突然断线了,你是不可能马上发现我断线的,你要经过一段时间才可以发现,在这个期间就会不精确,但是没有办法!
例如我登录你的网站,突然断线了,你是不可能马上发现我断线的,你要经过一段时间才可以发现,在这个期间就会不精确,但是没有办法!
解决方案 »
- getOutputStream() has already been called for this response,大家来找茬
- 刚学struts2 checkboxlist帮忙看下
- 关于更新数据库的问题
- 请问Hibernate是不是不支持下面类型的查询?
- 高分请教接口问题。
- 请教: jaxp中的TransformerFactory问题
- j2ee适合网格计算吗?
- 急!求教struts实现方法.
- servlet 和 EJB 高手请进
- 【求助】求大神教我写一个SQL语句,在线急等!!!!
- Weblogic上集群怎么解决附件的问题?
- 100分求助:使用Apache poi 读取EXCEL表格出现空CELL的时候出现的问题!急~在线等!
创建一个appliction 来保存在线人数.
以下是代码.
// Java Document
package com;
import java.util.*;
import javax.servlet.http.*;
public class SessionListener implements HttpSessionBindingListener {
public String privateInfo="";
public String logString="";
public int count=0;
public SessionListener(String info)
{
this.privateInfo=info;
}
public int getCount()
{
return count;
}
public void valueBound(HttpSessionBindingEvent event) // 事件处理。
{
count++;
}
public void valueUnbound(HttpSessionBindingEvent event) // 事件处理。
{
count--;
}
}
///以下是jsp运行实例。
<%
ServletContext se=getServletConfig().getServletContext(); //取得ServletContext对象。
if((SessionListener)se.getAttribute("li"))==null)
{
SessionListener session1=new SessionListener("count"); //对每一个会话启动一个监听器。只设置一次。
se.setAttribute("li",session1); //将监听器对象设置成ServletContext属性。全局性,所有客户都将可以访问。
}
session.setAttribute("li",(SessionListener)se.getAttribute("li")); //取出全局对象,并且将此对象绑定到某个对话中,此举将促使监听器调用valueBound事件,计数器加一。
out.print(((SessionListener)session.getAttribute("li")).getCount()); //打印出当前的计数器的值。getCount()取得在线的总人数。
%>