问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JSP显示网站在线人数,是怎么编的?谈谈思想

发布网友 发布时间:2022-04-22 08:20

我来回答

2个回答

热心网友 时间:2022-04-22 09:49

首先, 这个东西是无法做得准确的, 因为人家把电脑一关或是突然断电了你都没办法统计进来, 所以只能是个大致的人数统计.

用J2EE平台解决这个问题一般有两种方法:
1、使用数据库来做, 每登录进来一个用户就往数据库中存放一条记录或是改变一下在线人数, 每退出一个用户反之, 然后JSP中读数据库中的信息即可.

2、使用HttpSessionListener来实现,写一个类实现HttpSessionListener接口,在sessionCreated方法中增加在线用户数,在sessionDestroyed方法中减少在线用户数即可。

我个人认为第二种办法更为优雅一些。

示例代码如下:
public class MySessionListener implements HttpSessionListener {

/**
* @param e
* @author chinakite zhang
* @version 1.0
* <pre>
* Created on :Apr 29, 2005 10:28:04 AM
* LastModified:
* History:
* </pre>
*/
public void sessionCreated(HttpSessionEvent e) {
OnlineCounter.raise();
}

/**
* @param e
* @author chinakite zhang
* @version 1.0
* <pre>
* Created on :Apr 29, 2005 10:28:04 AM
* LastModified:
* History:
* </pre>
*/
public void sessionDestroyed(HttpSessionEvent e) {
OnlineCounter.rece();
}
}

/**
* 单例的计数器
*/
public class OnlineCounter implements Serializable {
/*
* 在线人数
*/
private static int online = 0;

/**
* 获得在线人数
* @return
* @author chinakite zhang
* @version 1.0
* <pre>
* Created on :Jul 7, 2005 9:22:38 AM
* LastModified:
* History:
* </pre>
*/
public static int getOnline(){
return online;
}

/**
* 在线人数增1
*
* @author chinakite zhang
* @version 1.0
* <pre>
* Created on :Jul 7, 2005 9:22:50 AM
* LastModified:
* History:
* </pre>
*/
public static void raise(){
if(online < 0){
online = 0;
}
online++;
}

/**
* 在线人数减1
*
* @author chinakite zhang
* @version 1.0
* <pre>
* Created on :Jul 7, 2005 9:23:09 AM
* LastModified:
* History:
* </pre>
*/
public static void rece(){
online--;
}
}

希望我的回答对你能有所帮助

热心网友 时间:2022-04-22 11:07

HttpSessionListener统计在线人数
用一个类去监听他,代码实现如下
/**
* 编写以下SessionCounter.java
* 并编译为SessiionCounter.class
* 然后放到你的网站的classpath的
* SessionCount(自己建立此目录)下面
*/

package SessionCount;

import javax.servlet.*;

import javax.servlet.http.*;

public class SessionCounter implements HttpSessionListener {

private static int activeSessions = 0;

public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
}

public void sessionDestroyed(HttpSessionEvent se) {
if(activeSessions > 0)
activeSessions--;
}

public static int getActiveSessions() {
return activeSessions;
}
}

接着建立online.jsp文件用于显示在线人数

在线:

然后需要在你的网站的WEB-INF中建立web.xml
文件内容如下:
<!-- Web.xml -->
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">

<web-app>

<!-- Listeners -->
<listener>
<listener-class>
SessionCount.SessionCounter
</listener-class>
</listener>

</web-app>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 我想知道德州有多少家土工膜生产厂家啊。请大家告诉我,我想选择一家大型的公司 糙面HDPE土工膜的产品规格 惠钰瑶,姓名打分,评论 胡钰瑶和胡诗寒那个名字比较好听 我叫赵钰瑶 90年的女生 请帮我取一个与中文名相似的英文名 田钰瑶女孩这个名字子能打多少分 寇钰瑶这个名字多少分? 长女名钰瑶,次女取什么名字? 钰瑶,这两字用作人名好吗?最好说说五行 我给女儿取名吴钰瑶好吗? 魏钰瑶,这名字起的好不好? 钰瑶这名字含义是什么? PHP如何获得网站在线人数 梦见被2狮子追我但是又被我打跑了没有咬到我是什么意思是被我打跑了!但是它们一直在我身边,一会儿又对 有没有人知道经常梦见很多狮子老虎跑到家来,但是又不咬我,有没有人知道到底为什么总是做这样的梦? 怎么在电脑上直接登录 如何知道一个网站的同时在线人数 性宫属羊2015年10月份出生的取什么名字好? 取名,两个不好取名的姓,宫或付 我想写小说,女主姓南宫,应该叫什么? 一个网友访问人数少于在线人数是什么意思 獭兔价格 为什么这么低? 价格还能涨吗 、? 癞兔的行情怎么样……谢了!! 如何应对獭兔市场的变化? 獭兔皮市场价格 姐妹们,我不想我的孩子成为留守儿童.我该怎么办 2006年獭兔皮市场调查 我不想我的孩子成为留守儿童:&#39;( 我不想做留守儿童 不想让宝宝成留守儿童,老公却不理解我的想法,该怎么办? 妈妈,我不想当留守儿童 关于留守儿童的作文有没有 孩子不想做留守儿童我还怎么给他说 为了孩子不当留守儿童,放弃我喜欢的工作,值得吗 我家在小县城,不想让小孩在做留守儿童,想在家创业做点小生意,希望 自己从小做留守儿童能体会那种感觉 真的真的不想让自己孩子做留守儿童 可是老公叫我放家里给她爸妈 中医直肠滴入与中药灌肠有什么区别 留守儿童,都说关注留守儿童,其实我也不想让我的孩子成为留守儿童,谁的孩子谁不疼啊。可是为了生活我们 让孩子做留守儿童 真的不好吗? 不想去上学留守儿童