java网站如何统计访问量和在线人数实例源码。简言之,如果不用第三方提供的接口

那最好的解决方案应该是当SESSION建立时sessionCreated(),在访问总数和当前在线人数上+1

当SESSION销毁时sessionDistroyed(),在线人数-1

核心方法是利用Listener监听的各种接口

我把代码(主要部分)贴在下面

此段代码我亲自使用过,没有问题

但因为继承了接口,有些未使用的方法也要补充进去,具体方式比如在MyEclipse中可以靠点错误,ADD UNIMPLEMENTED METHOD实现

package com.eaie.system;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.PrintWriter;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.Enumeration;

import java.util.Set;

import javax.servlet.RequestDispatcher;

import javax.servlet.Servlet;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletException;

import javax.servlet.ServletRequestEvent;

import javax.servlet.ServletRequestListener;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSessionActivationListener;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class SessionListener implements HttpSessionActivationListener,

HttpSessionListener, ServletContext, ServletRequestListener {

ServletContext context;

int onLineUserNum = 0;

int visitNum = 0;

HttpServletRequest request;

public void sessionDidActivate(HttpSessionEvent session) {

log(“seesionDidActive(“+session.getSession().getId()+”)”);

}

public void sessionWillPassivate(HttpSessionEvent session) {

log(“seesionWillPassivate(“+session.getSession().getId()+”)”);

}

public void sessionCreated(HttpSessionEvent event) {

onLineUserNum++;

visitNum ++;

String ip = request.getRemoteAddr();

log(“sessionCreated(‘”+event.getSession().getId()+”‘),–>IP:”+ip);

context.setAttribute(“onLineUserNum”, new Integer(onLineUserNum));

context.setAttribute(“visitNum”, new Integer(visitNum));

}

public void sessionDestroyed(HttpSessionEvent event) {

if (onLineUserNum>0){

onLineUserNum–;

}

String ip = request.getRemoteAddr();

log(“sessionDestroyed(‘”+event.getSession().getId()+”‘),–>IP:”+ip);

context.setAttribute(“onLineUserNum”, new Integer(onLineUserNum));

}

public void contextDestroyed(ServletContextEvent sce){

log(“contextDestroyed–>ServletContext is destroyed”);

this.context = null;

}

public void contextInitialized(ServletContextEvent sce){

this.context = sce.getServletContext();

log(“contextDestroyed–>ServletContext is initialized”);

}

public int getUserOnline(){

return this.onLineUserNum;

}

public void log(String message) {

PrintWriter out = null;

try{

out = new PrintWriter(new FileOutputStream(“c:\\eaieLogger.txt”,true));

out.println(new java.util.Date().toLocaleString()+”::From SessionListener:”+message);

out.println(“Totle visit number:”+this.visitNum+” and current online num: “+onLineUserNum);

out.println(“=================================”);

out.close();

}catch(Exception e){

e.printStackTrace();

out.close();

}

}

public void requestInitialized(ServletRequestEvent event) {

request = (HttpServletRequest)event.getServletRequest();

}

//省略其他方法

}

这个程序需要在web.xml中配置:

com.eaie.system.SessionListener

需要注意的是LISTENR的位置,必须在的相关配置之后,在的相关配置之前

本文链接地址: java网站如何统计访问量和在线人数实例源码

java如何统计系统浏览人数_java网站如何统计访问量和在线人数实例源码相关推荐

  1. java毕业设计——基于java+J2EE+Hibernate的校园二手交易网站设计与实现(毕业论文+程序源码)——二手交易网站

    基于java+J2EE+Hibernate的校园二手交易网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2EE+Hibernate的校园二手交易网站设计与实现,文章末尾附有 ...

  2. java贪吃蛇游戏代码下载_java实现贪吃蛇游戏代码(附完整源码)

    免费资源网,https://freexyz.cn/ 先给大家分享源码,喜欢的朋友点此处下载. 游戏界面 GUI界面 java实现贪吃蛇游戏需要创建一个桌面窗口出来,此时就需要使用java中的swing ...

  3. springfox源码_Java类springfox.documentation.builders.ParameterBuilder的实例源码 - 编程字典...

    /** * ApiImplicitParam 与 ApiParam 的区别 * ApiImplicitParam: This is the only way to define parameters ...

  4. 基于JAVA音乐网站的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA音乐网站的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA音乐网站的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: ...

  5. java计算机毕业设计中学网站设计与实现演示录像2020源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计中学网站设计与实现演示录像2020源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中学网站设计与实现演示录像2020源码+mysql数据库+系统+部署+lw文 ...

  6. 基于JAVA宠物救助网站的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA宠物救助网站的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA宠物救助网站的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B ...

  7. java毕业设计——基于Java+Bootstrap+Mysql的电影评论网站设计与实现(毕业论文+程序源码)——电影评论网站

    基于Java+Bootstrap+Mysql的电影评论网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Java+Bootstrap+Mysql的电影评论网站设计与实现,文章末尾附有本毕 ...

  8. java毕业设计——基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码)——宠物网站

    基于java+Spring+JSP的宠物网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Spring+JSP的宠物网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  9. 【java毕业设计】基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码)——威客网站

    基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+tomcat+jsp的威客网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

最新文章

  1. Android百度地图定位
  2. Spring(二)scope、集合注入、自动装配、生命周期
  3. 解决:-bash: telnet: command not found
  4. 在Centos环境下搭建Confluence
  5. Linux下载Mysql
  6. ffmpeg实现视频马赛克特效
  7. Python requests timeout 分析
  8. 计算机网络.第三节课.笔记.信道复用、频分复用、统计时分复用、波分复用、时分复用、码分复用、双绞线带宽、双绞线
  9. 构造函数,静态关键字,静态代码块,构造代码块,局部代码块
  10. 阻容感基础01:从宇宙起源到阻容感(1)
  11. 老版人人商城提示“百度未授权地图API”
  12. 揭开CVE漏洞挖掘与编号申请那层神秘窗户纸
  13. 国内外知名云服务公司介绍
  14. linux——signal信号(SIGHUP、SIGINT、SIGQUIT、SIGILL、SIGTRAP、SIGABRT...........................)
  15. 程序员如何正确的自我提升?
  16. [转]项目实施过程中的风险控制
  17. VSS2005的下载地址是:
  18. 快速学习html、css的经典笔记
  19. PageHelper 插件踩过的坑
  20. onvif服务器篇之设备发现(onvif discover)

热门文章

  1. 【React系列】Props 验证
  2. 电推进系统市场现状研究分析与发展前景预测报告
  3. 【C语言】字符串(main函数参数)
  4. docker: Error response from daemon: driver failed programming external connectivity on endpoint mysq
  5. 内网渗透研究:LLMNR和NetBIOS欺骗攻击分析
  6. 尝试写个UC浏览器(堆叠视图A)
  7. 合一信息技术(北京)有限公司诉被告北京百度网讯科技有限公司侵犯著作权纠纷一案判决书
  8. OpenCV学习(53)
  9. 最大似然估计(Maximum likelihood estimation)(通过例子理解)
  10. c语言 找子字符串,c语言搜索子字符串