
首先给你讲一下,我的理解,人数统计好说,因为,可已设置监听器,让其在服务器启动的时候进行监听,然后统计登录人数,但是统计在线人数,就麻烦点了,因为大多数人都不愿意点击注销按钮,直接关闭浏览器,这样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怎么做网站人数统计,和在线人数统计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)