`
jiues
  • 浏览: 122744 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

监听器完成 - 统计在线人数

阅读更多
import java.util.List;
import java.util.Vector;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;


/**
*
* @author db2admin
*
* 监听HttpSession对象,统计在线人数
*/
public class HttpSessionListenerHandle implements HttpSessionListener,
   HttpSessionAttributeListener
{
private String AttributeName;

private Object AttributeValue;

private List OnlineNumber=new Vector(10);// 保存sessionId的List

private static HttpSessionListenerHandle HttpSessionListenerInstence = new HttpSessionListenerHandle();

public static HttpSessionListenerHandle getInstence()
{
   return HttpSessionListenerInstence;
}

public List getSessionIdList()
{
   return this.OnlineNumber;
}

public Integer getOnlineNumber()
{
   return this.OnlineNumber.size();
}

public void attributeAdded(HttpSessionBindingEvent se)
{
   AttributeName = se.getName();
   AttributeValue = se.getValue();
   System.out.println("####Session增加一个属性:");
   System.out.println("AttributeName:" + AttributeName);
   System.out.println("AttributeValue:" + AttributeValue);

}

public void attributeRemoved(HttpSessionBindingEvent se)
{
   AttributeName = se.getName();
   AttributeValue = se.getValue();
   System.out.println("####Session删除一个属性:");
   System.out.println("AttributeName:" + AttributeName);
   System.out.println("AttributeValue:" + AttributeValue);

}

public void attributeReplaced(HttpSessionBindingEvent se)
{
   AttributeName = se.getName();
   AttributeValue = se.getValue();
   System.out.println("####Session替换一个属性:");
   System.out.println("AttributeName:" + AttributeName);
   System.out.println("AttributeValue:" + AttributeValue);

}

public void sessionCreated(HttpSessionEvent se)
{
   OnlineNumber.add(se.getSession().getId());
   System.out.println("####创建一个Session");
   System.out.println("Session Id:" + se.getSession().getId());
   System.out.println("当前在线人数:" + getOnlineNumber());

}

/**
* 可以用于统计用户在线数
*/
public void sessionDestroyed(HttpSessionEvent se)
{
   OnlineNumber.remove(se.getSession().getId());
   System.out.println("####销毁一个Session");
   System.out.println("Session id:" + se.getSession().getId());
   System.out.println("当前在线人数:" + getOnlineNumber());
}

}

在web.xml中配置如下:

.............

<listener>
   <listener-class>
    com.cq.web.listener.HttpSessionListenerHandle
   </listener-class>
</listener>

.........................
分享到:
评论

相关推荐

    监听器实现在线人数统计

    在这个场景下,我们关注的是如何利用监听器来实现在线人数的统计。在线人数统计是一项重要的功能,特别是在构建实时交互的Web应用或者聊天室时,能够提供实时的用户活跃度信息。 首先,我们需要理解业务需求。当...

    留言本--用DAO模式设计,servlet,监听器统计在线人数

    【标题】"留言本--用DAO模式设计,servlet,监听器统计在线人数"涉及到的是在Java Web开发中实现一个用户交互系统的核心技术。在这个项目中,DAO(Data Access Object)模式、Servlet以及监听器(Listener)是三个...

    监听器小例子(在线统计用户人数和用户信息)

    这里 我上传一个 关于监听器的一个小小案例,练手的监听器例子(统计在线用户人数和信息) ——————————————————————————————从不同浏览器等,访问我的网页时,统计的用户人数和用户...

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

    当用户注销或会话超时时,监听器则会触发会话解除绑定事件,更新在线用户列表。 ```java public class onLineUser implements HttpSessionBindingListener { // ... } ``` ##### 2. 使用`Vector`集合存储在线用户...

    JSP中的在线人数统计

    为了实现在线人数统计,我们首先需要创建一个监听器类`OnLineDemo.java`,该类实现了`ServletContextListener`、`HttpSessionListener`和`HttpSessionAttributeListener`接口。 1. **监听器类`OnLineDemo.java`**:...

    java监听器实现在线人数统计

    Java监听器实现在线人数统计的知识点主要包括以下几个方面: 1. Java监听器概念:在Java Web应用程序中,监听器是一种特殊的Java类,它可以监听Web应用中的特定事件。这些事件包括:上下文初始化事件、会话创建和...

    监听器访问计数过滤非法字符

    在"监听器访问计数"的场景下,我们通常会使用HttpSessionListener或者HttpSessionAttributeListener来实现在线人数的统计。例如,当一个用户打开一个Web页面时,创建一个新的会话,监听器会接收到这个事件并增加在线...

    servlet监听器总结

    - **在线用户数量管理**:通过监听器自动跟踪在线用户数量的变化,例如每当一个新的`HttpSession`被创建时,即可自动将在线人数计数器加一。 #### 三、监听器的实现方式 - **接口实现**:为了编写监听器,开发者...

    jquery人数统计数字翻页特效插件.zip

    5. **事件监听**:如果需要在特定事件(如页面加载完成)后启动动画,插件会使用`.on()`方法绑定事件监听器。 6. **兼容性检查**:由于不支持IE6、7、8,插件内部可能会有针对这些老版本浏览器的检测和处理代码,...

    struts2详细网站访问总人数统计(点击率)

    这可以通过监听HTTP请求,在Struts2的拦截器(Interceptor)中完成。拦截器在Action执行前后运行,可以对请求进行额外的处理,如增加点击次数计数。 5. **实现细节**: - 创建一个专门的统计拦截器,该拦截器检查...

    用户统计javaWeb

    在JavaWeb中,可以通过实现ServletContextListener、HttpSessionListener等接口来创建监听器,例如监听应用程序启动、关闭或会话创建、销毁等事件。 #### 2.3 实现方式 在示例代码中提到“FilterAndListener”,这...

    基于springboot+MyBatis实现的某房产平台系统源码+项目说明(毕设).zip

    【资源说明】 1、基于springboot+MyBatis实现的某房产平台系统源码+项目说明(毕设).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机...HttpSessionListener监听器统计系统当前在线人数

    计算机二级(java)机试125扫描.pdf

    程序的逻辑是先通过循环累加所有成绩求和,然后除以学生人数得到平均分,再通过`do-while`循环遍历数组,判断每个元素是否低于平均分,统计低于平均分的学生人数。 二、简单应用题 2. 第2题: - 此题涉及Java图形...

    pzhujavaweb的图书管理系统

    攀枝花学院课程设计 javaweb的图书管理系统 采用idea编写 技术: maven+jstl+el+jsp +servlet+mvc三层控制结构 完成书籍的增删查改操作,用户...具有前端验证 采用过滤器监听器 能统计总共历史在线人数和当然在线人数

    自己整理基础知识集锦

    - **监听器** 监听特定事件,如session状态变化,用于统计在线人数等。 - **执行顺序** 过滤器按web.xml配置顺序执行,拦截器在Action请求中按顺序调用,监听器响应特定事件。 6. **Filter工作原理** - 当请求...

    工学院java复习.docx

    - 监听器可以监听ServletContext、HttpSession和ServletRequest等对象的生命周期,如创建、销毁,以及属性修改,帮助实现高级功能,如会话管理、统计在线人数等。 6. **JDBC操作** - JDBC(Java Database ...

    Java课程设计聊天室(含代码).pdf

    - **在线人数统计**:记录并展示当前在线用户数量。 - **断开连接**:在服务关闭时,断开所有客户端连接。 3. **客户端功能**: - **连接服务器**:客户端可以指定服务器的IP地址和端口号进行连接。 - **配置...

    Java课程设计聊天室

    - **在线人数统计**:实时统计当前连接到服务器的用户数量。 - **断开连接**:在服务关闭时,主动断开所有客户端的连接。 **2. 客户端功能:** - **连接服务器**:客户端需要能够连接到运行聊天服务的服务器。 - **...

    servletContext的实例代码

    在Java Web开发中,`...通过实例代码,我们可以看到它如何帮助实现登录功能和统计登录人数,同时也展示了其在监听器中的应用。在实际开发中,掌握`ServletContext`的使用将有助于提升Web应用的灵活性和可扩展性。

    电商书城项目,新旧书交易平台

    - 监听器可以监听Web应用程序中的特定事件,如用户登录、注销等,可用于统计在线人数或实现自动登录功能。 7. **Spring框架**: - 虽然标签没有明确提及Spring,但在现代JavaWeb开发中,Spring框架经常用于依赖...

Global site tag (gtag.js) - Google Analytics