`

java 在线用户统计

    博客分类:
  • java
阅读更多

 web.xml

 

<listener> 
  <listener-class>cyoa.page.OnlinePersons</listener-class> 
 </listener> 

 

 


import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class OnlinePersons implements HttpSessionListener,
  ServletContextListener, ServletContextAttributeListener {
 private int count;

 private ServletContext context = null;

 public OnlinePersons() {
  count = 0;
  // setContext();
 }

 // 创建一个session时激发
 public void sessionCreated(HttpSessionEvent se) {
  count++;
  setContext(se);

 }

 // 当一个session失效时激发
 public void sessionDestroyed(HttpSessionEvent se) {
  count--;
  setContext(se);
 }

 // 设置context的属性,它将激发attributeReplaced或attributeAdded方法
 public void setContext(HttpSessionEvent se) {
  se.getSession().getServletContext().setAttribute("onLine",
    new Integer(count));
 }

 // 增加一个新的属性时激发
 public void attributeAdded(ServletContextAttributeEvent event) {

  log("attributeAdded('" + event.getName() + "',   '" + event.getValue()
    + "')");

 }

 // 删除一个新的属性时激发
 public void attributeRemoved(ServletContextAttributeEvent event) {

  log("attributeRemoved('" + event.getName() + "',   '"
    + event.getValue() + "')");

 }

 // 属性被替代时激发
 public void attributeReplaced(ServletContextAttributeEvent event) {

  log("attributeReplaced('" + event.getName() + "',   '"
    + event.getValue() + "')");
 }

 // context删除时激发
 public void contextDestroyed(ServletContextEvent event) {

  log("contextDestroyed()");
  this.context = null;

 }

 // context初始化时激发
 public void contextInitialized(ServletContextEvent event) {

  this.context = event.getServletContext();
  log("contextInitialized()");

 }

 private void log(String message) {

  System.out.println("ContextListener:   " + message);
 }

 public void attributeAdded(HttpSessionBindingEvent arg0) {
  // TODO Auto-generated method stub

 }

 public void attributeRemoved(HttpSessionBindingEvent arg0) {
  // TODO Auto-generated method stub

 }

 public void attributeReplaced(HttpSessionBindingEvent arg0) {
  // TODO Auto-generated method stub

 }
}

//退出时

   function close(){
 
 document.location.href="loginoutAction.do";  
  var ua = navigator.userAgent; var ie = navigator.appName=="Microsoft Internet Explorer"?true:false;
  if(ie){
   var IEversion = parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))));
   if( IEversion< 5.5){
    var str = '';
    document.body.insertAdjacentHTML("beforeEnd", str);
    document.all.noTipClose.Click();
   } else {
   top.opener =null; top.close();
   }
  }else{
   top.close();
  }
 
}

 

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginoutAction extends Action{
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
  HttpSession sess=request.getSession(true);
   if(sess.getAttribute("username")!=null && !sess.getAttribute("username").equals("")){
    sess.removeAttribute("username");
    sess.invalidate();
   }
   response.setContentType("text/html;charset=UTF-8");
   PrintWriter out=null;
         try{
    out= response.getWriter();
    out.print("<script language='javascript'> top.location.href='login.jsp';</script>");
   } catch(Exception e){e.printStackTrace();}
   return null;
 }
}

 

 

分享到:
评论

相关推荐

    JAVA Web在线用户统计

    在JAVA Web开发中,实现在线用户统计是一项关键功能,它能够帮助网站或应用程序的管理员实时了解当前有多少用户正在访问和使用系统。这个“JAVA Web在线用户统计”解决方案显然是强大、好用且简单的,这意味着它可能...

    应用java实现在线用户数统计组件(源代码)

    2. **时间窗口机制**:为了统计在线用户,我们需要一个时间窗口来判断用户是否活跃。可以使用滑动窗口或者固定窗口算法,例如基于时间戳的队列,当新的用户活动到来时,将时间戳加入队列,然后定期检查队列中时间...

    判断用户是否在线和实时统计在线人数

    在IT行业中,尤其是在Web开发领域,判断用户是否在线和实时统计在线人数是常见的需求,这有助于提供更好的用户体验和服务。这两个概念通常与Java Web和JSP技术密切相关,涉及到HTTP会话管理和数据结构的运用。 首先...

    java代码统计工具

    这个工具包含了三个关键文件:`java代码统计工具.exe`是可执行程序,用户可以直接运行来执行统计;`CodeCounter.java`可能是该工具的主要源代码文件,包含了统计逻辑;`MyFilter.java`可能是一个过滤器类,用于筛选...

    jsp+servlet+java 实现统计在线人数,在线用户.txt

    根据提供的文件信息,我们可以分析出该系统通过JSP、Servlet以及Java技术实现了一个简单的在线用户统计功能。下面将从以下几个方面进行详细解析: ### 一、项目架构与技术栈 本项目主要使用了JSP(Java Server ...

    java统计在线人数

    在Java Web开发中,统计在线人数是一项常见的需求,它能够帮助我们了解系统当前的活跃用户量。本项目通过实现`HttpSessionListener`接口,每隔一分钟动态更新在线人数,提供了高效且可靠的解决方案。以下是对这个...

    Java数据生成统计图表程序

    Java数据生成统计图表程序是一种利用...综上所述,"Java数据生成统计图表程序"是一个综合性的项目,涵盖了数据处理、图形绘制和用户交互等多个方面,对于学习和实践Java编程,特别是数据可视化,是非常有价值的实例。

    java web在线人数统计/监听

    本文将深入探讨如何使用Java Web技术来监听并统计在线人数。 1. **HTTP与Session** HTTP协议本身是无状态的,无法直接追踪用户的会话。为了在多个请求之间保持用户状态,Web服务器引入了Session机制。每当用户打开...

    JAVA编写SVN统计代码数量系统

    【标题】"JAVA编写SVN统计代码数量系统"是一个基于Spring Boot框架的项目,用于统计在Subversion(SVN)版本控制系统中的代码提交情况。它能够详细地分析每个团队成员在SVN仓库中的代码贡献量。 【核心知识点】: ...

    jsp实现在线人数及在线用户统计

    ### JSP实现在线人数及在线用户统计 #### 知识点概述 在现代Web开发中,统计在线人数和在线用户是十分重要的功能之一,尤其是在构建社区、论坛等交互性强的网站时。通过JSP(JavaServer Pages)可以方便地实现这一...

    java智能源码统计专家

    14、支持用户自定义文件统计类型及统计方法。 15、支持htm,excel,csv,txt等多种存盘文件类型。 16、支持统计结果的直接打印输出。 17、支持命令行方式的文件及目录统计方式。 18、支持资源管理器右键关联的文件及...

    Java在线投票系统 - 实现在线投票和统计功能

    总结在这个实战博客中,我们了解了如何使用 Java 和 Spring Boot 构建一个简单的在线投票系统。我们使用了 Thymeleaf 提供用户界面,Spring Data JPA 简化数据访问,并借助 H2 内存数据库存储投票数据。通过这个项目...

    Java代码统计工具

    这意味着Java代码统计工具是一个基于Java编写的程序,用户需要先安装JRE才能在计算机上运行这个工具。 总的来说,Java代码统计工具通过提供丰富的统计信息,可以帮助开发人员和团队更好地管理代码库,提升代码质量...

    Java实现:月,日,年,周,访问量统计

    在Java编程中,实现月、日、年、周和访问量统计是一项常见的需求,尤其是在构建数据分析或Web应用中。这通常涉及到数据收集、处理和可视化。以下是一些关键知识点: 1. **日期和时间处理**:Java提供了多种库来处理...

    网站统计在线人数,当前年、月、日访问量JAVA代码

    在网站运营过程中,统计在线人数和访问量是至关重要的数据指标,它们可以帮助我们了解网站的活跃度、用户行为以及优化方向。本主题将详细介绍如何使用Java编程语言来实现这一功能,特别是关注当前年、月、日的访问量...

    java统计图java统计图

    在Java编程语言中,生成统计图是数据可视化的重要部分,特别是在证券系统中,交易变化的图形展示可以帮助用户直观地理解市场动态。为了实现这个功能,Java提供了多种库和框架,如JFreeChart、JavaFX、Chart.js(通过...

    java问卷调查统计软件

    Java问卷调查统计软件是一款利用Java编程语言开发的应用程序,主要用于处理和分析社会实践中的问卷调查数据。这个程序的核心功能包括数据录入、数据清洗、数据分析以及结果可视化。下面将详细阐述其中涉及的关键知识...

    用java实现word统计报表和图形统计的导出

    在给定的标题“用java实现word统计报表和图形统计的导出”中,我们可以理解到这个项目或教程旨在教我们如何使用Java来创建包含统计报表和图形的Microsoft Word文档。这通常涉及到两个关键领域:文本处理和数据可视化...

    java 文字样式统计器

    图片可能展示了如何组织代码结构,或者提供了一个用户界面的预览,如果这个统计器还包括图形用户界面的话。 总的来说,创建一个Java文字样式统计器需要深入理解字符串操作、正则表达式(可能用于更复杂的文本分割和...

    Java词频统计程序MVC

    Java词频统计程序MVC是一种基于Java编程语言实现的、采用Model-View-Controller(MVC)设计模式的软件架构来统计文本中单词出现频率的应用。MVC模式是软件工程中一种常用的设计模式,用于将应用程序的业务逻辑、用户...

Global site tag (gtag.js) - Google Analytics