高手请进!!java统计网站的访问量和在线人数的问题,有知道的直接发一个简单的例子我,多谢啦!

高手请进!!java统计网站的访问量和在线人数的问题,有知道的直接发一个简单的例子我,多谢啦!,第1张

首先给你讲一下,我的理解,人数统计好说,因为,可已设置监听器,让其在服务器启动的时候进行监听,然后统计登录人数,但是统计在线人数,就麻烦点了,因为大多数人都不愿意点击注销按钮,直接关闭浏览器,这样session的关闭就麻烦了点,我先给出统计人数的代码,我想统计在线人数可以定时调用程序来统计,但是不是实时的,所以最大的障碍就是怎么在关闭浏览器的时候,就关闭session

import javaioFileNotFoundException;

import javaioFileReader;

import javaioFileWriter;

import javaioIOException;

import javaioPrintWriter;

import javautilScanner;

import javaxservletServletContext;

import javaxservletServletContextEvent;

import javaxservletServletContextListener;

public class ApplicationListener implements ServletContextListener{

public void contextDestroyed(ServletContextEvent arg0) {

ServletContext sc = arg0getServletContext();

Integer count = (Integer) scgetAttribute("AccessCount");

try {

PrintWriter out = new PrintWriter(new FileWriter("c:/Users/god/counttxt"));// 将人数保存到文本文件

Systemoutprintln("count:"+count);

outprint(count);

outflush();

outclose();

} catch (IOException e) {

eprintStackTrace();

}

}

public void contextInitialized(ServletContextEvent arg0) {

Integer count = 0;

ServletContext sc = arg0getServletContext();

try {

Scanner in = new Scanner(new FileReader("c:/Users/god/counttxt"));// 读取已经产生的人数信息,然后进行累加

count = innextInt();

inclose();

} catch (FileNotFoundException e) {

eprintStackTrace();

}

scsetAttribute("AccessCount", count);

}

}

在webxml文件里面进行设置

<listener>

<listener-class>

文件的位置也就是包名ApplicationListener

</listener-class>

</listener>

统计的时候是设置拦截器,需要在strutsxml中设置

import javaxservletServletContext;

import javaxservlet>

建立一个Globalasax文件;

void Application_Start(object sender, EventArgs e)

{

//在应用程序启动时运行的代码

Application["count"]=0;

}

void Session_Start(object sender, EventArgs e)

{

//在新会话启动时运行的代码

ApplicationLock();

Application["count"]=(int)Application["count"]+1;

ApplicationUnLock();

}

void Session_End(object sender, EventArgs e)

{

//在会话结束时运行的代码。

// 注意: 只有在 Webconfig 文件中的 sessionstate 模式设置为

// InProc 时,才会引发 Session_End 事件。如果会话模式

//设置为 StateServer 或 SQLServer,则不会引发该事件。

ApplicationLock();

Application["count"]=(int)Application["count"]-1;

ApplicationUnLock();

}

我想你是应该在login页上显示结果,在login页上啦一个lable,id=lblinfer;在login页下代码的page_load中写lblinfertext="当前人数"+Application["count"]Tostring()+"人";

1用session超时,session为null就表示下线了

2也可以采用数据库中设置 临时表 来处理

一个用户登陆时向表中插进一条记录,用户离开时候删除该记录

如想统计在线人数,简单地执行

select count() from table 即可

3application对象中可以记住现在的人数,application的生命周期和服务器的生命周期一样长。

4还有一种方法要用到一个文件globaljsa ,方法是(在JSP中)是sessionDestroy(),其中它是以session对象为参数的。还有要把globaljsa文件必须房子和JSP程序相同的文件目录内才行。

5网页自动刷新的代码是:

在文件头部加上

<meta >

实现刷新在线用户列表,思路建立一个Session临时表 每次用户登陆就写入用户的 ID 级别 临时时间 等 重点在临时时间的字段数据,写入之后用户每次刷新页面或者打开新页面就更新Session表里的用户数据 步骤是先删除5分钟之内没有 *** 作的用户,利用临时时间字段来判断 删除后剩下的就是在线的用户,很简单, 总体就是 记录 更新 删除 获取PS:这个超时时间你可以根据自己网站的情况设置

是统计正在使用exe的在线人数吗?

打开软件给服务器发送通知一下,服务器端记录一下时间等信息,然后服务器端每隔20分钟,剔除不活动的信息,这样就是在线人数了,但是这种适合有点编程基础的还需要数据库知识。

有种偷懒一点的方法,可以利用现成的免费统计,如51,站长,百度统计,方法就是在你的易语言程序里加上一个隐藏的超文本浏览框,然后里面放一个免费的代码,然后打开这些统计网站就可以看见了。

希望能帮到你

以上就是关于高手请进!!java统计网站的访问量和在线人数的问题,有知道的直接发一个简单的例子我,多谢啦!全部的内容,包括:高手请进!!java统计网站的访问量和在线人数的问题,有知道的直接发一个简单的例子我,多谢啦!、根据微信公众平台可以获取有多少人访问该小程序的数据、用asp。net怎么做网站人数统计,和在线人数统计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10108511.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存