`

JSP统计在线用户信息

阅读更多

 

 

package org.springframework.web;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.ContextLoaderListener;

import util.ToolKit;

import com.sun.org.apache.bcel.internal.generic.NEW;

/**
 * 在线统计
 * @author 杨伦亮 Jun 5, 2011
 */
public class OnLineUsers extends ContextLoaderListener implements HttpSessionListener {
	/** user */
	public static final String	        User_Name	        = "username";
	public static final String	        User	           = "user";
	/** onLineUsers */
	public static final String	        Application_Users	= "onLineUsers";
	private static Map<String, String>	usersList	     = new HashMap<String, String>();
	private static Log	              log	              = LogFactory.getLog(OnLineUsers.class);
	
	public void sessionCreated(HttpSessionEvent se) {
	}
	
	@SuppressWarnings("unchecked")
	public void sessionDestroyed(HttpSessionEvent se) {
		HttpSession session = se.getSession();
		ServletContext application = session.getServletContext();
		
		// 取得登录的用户名   
		String username = (String) session.getAttribute(User_Name);
		if("".equals(username)){
			log.fatal(new StringBuffer(username).append(ToolKit.getDateByType(" yyyy年MM月dd日 HH:mm:ss ")).append(" 退出系统!"));
		}
		log.info(username +"\t退出系统!");
		// 从在线列表中删除用户名   
		usersList = (Map<String, String>) application.getAttribute(Application_Users);
		if(usersList.containsKey(username)){
			usersList.remove(username);
			application.setAttribute(Application_Users, usersList);
		}else{
			log.info("用户不在在线列表中!"+usersList);
		}
		
	}
	
	private ContextLoader	contextLoader;
	
	/**
	 * Initialize the root web application context.
	 */
	public void contextInitialized(ServletContextEvent event) {
		this.contextLoader = createContextLoader();
		this.contextLoader.initWebApplicationContext(event.getServletContext());
	}
	
	/**
	 * Create the ContextLoader to use. Can be overridden in subclasses.
	 * @return the new ContextLoader
	 */
	protected ContextLoader createContextLoader() {
		return new ContextLoader();
	}
	
	/**
	 * Return the ContextLoader used by this listener.
	 * @return the current ContextLoader
	 */
	public ContextLoader getContextLoader() {
		return this.contextLoader;
	}
	
	/**
	 * Close the root web application context.
	 */
	public void contextDestroyed(ServletContextEvent event) {
		if(this.contextLoader !=null){
			this.contextLoader.closeWebApplicationContext(event.getServletContext());
		}
	}
}

 

 

 

分享到:
评论

相关推荐

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

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

    JSP统计在线人数实现

    在本文中,我们将深入探讨如何使用JavaServer Pages (JSP) 实现在线人数统计功能,以便展示当前在线的用户数量。我们将分析提供的代码段,并解释关键概念和技术。 首先,我们有一个名为`onLineUser`的类,它实现了`...

    完全基于jsp的在线统计系统

    其次,统计用户停留时间是衡量用户对网站内容兴趣的重要指标。在timestay目录下的代码可能包含了实现这一功能的关键。通常,当用户打开网页时,服务器会记录开始时间,当用户离开时,记录结束时间,两者的差值即为...

    jsp统计在线人数.txt

    根据给定文件的信息,我们可以总结出以下关于使用 JSP 实现在线用户人数统计的知识点: ### 1. **实现原理** 在线人数统计主要是通过利用 `HttpSession` 的生命周期事件来实现。每当一个新用户访问网站时,服务器会...

    用JSP程序实现统计当前在线人数

    这意味着,无论何时有新用户访问,都会使用同一个`onLineUser`实例来管理在线用户信息。页面接收`username`参数,检查用户是否存在,如果不存在,则将用户添加到在线列表中,并设置会话超时时间。 ### 实现细节 1....

    jsp中监听器实现在线用户统计

    在"jsp中监听器实现在线用户统计"这个场景下,我们需要关注的是如何利用监听器来跟踪和管理在线用户。 首先,我们要理解Servlet监听器的概念。Servlet监听器是实现了Java Servlet API中特定接口的Java类,这些接口...

    JAVA jsp统计在线人数

    在Java JSP(JavaServer Pages)环境中,统计在线人数是一项常见的需求,这通常涉及到服务器端的会话管理、数据持久化以及实时性处理。这里我们将深入探讨如何利用JSP技术来实现这一功能。 首先,我们需要理解JSP的...

    jsp完成对在线人数的统计!

    本项目的目标是通过JSP(JavaServer Pages)技术来实现一个简单的在线用户统计系统。主要功能包括:记录用户登录状态、统计当前在线用户数量以及展示在线用户列表。 #### 二、关键技术点详解 ##### 1. 使用`...

    JSP实现网站流量统计

    在网站运营中,流量统计是一项至关重要的任务,它能够帮助我们了解网站的访问情况,包括访问量、用户行为、热门页面等信息。本资源提供了JSP实现网站流量统计的一种方法,对于学习和实践Web开发,尤其是JSP应用,...

    客户信息管理系统JSP

    总的来说,客户信息管理系统JSP项目涉及了Web开发的基础知识、数据库管理、用户权限控制、数据安全等多个方面,是学习和实践企业级应用开发的良好案例。开发者需要掌握Java编程、JSP语法、SQL查询以及相关的Web框架...

    JFreeChart+JSP实现统计图展示

    最后,Servlet将生成的图表作为响应的一部分返回给JSP,JSP将其嵌入到HTML页面中,用户即可在浏览器上看到动态生成的统计图表。 总的来说,"JFreeChart+JSP实现统计图展示"是一个典型的Web应用开发流程,它涉及到...

    JSP统计图实例

    总的来说,JSP结合合适的图表库,可以有效地实现统计图的展示,帮助用户直观地理解复杂的数据。无论是柱形图用于比较不同类别的数据,线形图用于展示趋势,还是点状图用于描绘数据分布,都是数据分析和决策制定的...

    JSP流量统计系统

    了解和分析这个JSP流量统计系统,对于开发者来说,不仅可以学习到JSP和Servlet的结合使用,还能掌握Web开发中的数据处理、页面设计以及用户体验优化等相关技能。同时,这也是对大数据处理和可视化的一个基础实践,...

    JSP 在线人数统计的实现

    **JSP 在线人数统计的实现** 在Web开发中,实时在线人数统计是一项常见的需求,它可以帮助网站管理员了解当前有多少用户正在访问网站,以便优化资源分配和服务质量。JSP(JavaServer Pages)作为Java Web开发的重要...

    JSP 流量统计系统

    **JSP流量统计系统**是一种基于Java Server Pages (JSP)技术构建的Web应用程序,用于收集、处理和展示网站的访问流量数据。JSP作为Java平台上的动态网页开发技术,允许开发者将静态内容与动态逻辑相结合,从而创建...

    在线人数统计程序(JSP)

    在线人数统计程序是Web开发中一个常见的功能,用于实时显示网站当前在线用户的数量。这个程序通常基于服务器端的技术实现,例如JavaServer Pages (JSP)。JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java...

    JSP流量统计系统.rar

    在JSP流量统计系统中,这些元素可能被用来处理用户请求,存储和检索数据,以及生成动态内容。 **二、流量统计原理** 流量统计通常涉及以下几个关键步骤: 1. **访问记录**:当用户访问网站时,系统会记录每次请求...

    jsp统计实例

    总的来说,"jsp统计实例"是一个很好的学习资源,它涵盖了JSP的基础知识和实际应用,对于初学者或进阶者都是有价值的参考资料。通过深入研究和实践,开发者可以更好地掌握JSP在统计和数据分析中的应用。

    jsp统计访问人数源码

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)技术来实现一个简单的页面访问人数统计的功能。这个功能对于初学者来说是一个很好的实践项目,能够帮助他们更好地理解和运用JSP的基本原理。我们将讨论以下...

Global site tag (gtag.js) - Google Analytics