`

HttpSessionListener用法 监听会话使用数量

阅读更多
HttpSessionListener接口是一个可监听java Web项目中Session的创建和消毁状态。
在理解这个接口之前,先提出一个问题,就是假设我的web应用上想知道到底有多少用户在使用?
具体使用,请看如下代码:
package demo.listener;

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

public class SessionCounter implements HttpSessionListener {
    public void sessionCreated(HttpSessionEvent event) {
        ServletContext ctx = event.getSession( ).getServletContext( );
        Integer numSessions = (Integer) ctx.getAttribute("numSessions");
        if (numSessions == null) {
            numSessions = new Integer(1);
        }
        else {
            int count = numSessions.intValue( );
            numSessions = new Integer(count + 1);
        }
        ctx.setAttribute("numSessions", numSessions);
    }
    public void sessionDestroyed(HttpSessionEvent event) {
        ServletContext ctx = event.getSession( ).getServletContext( );
        Integer numSessions = (Integer) ctx.getAttribute("numSessions");
        if (numSessions == null) {
            numSessions = new Integer(0);
        }
        else {
            int count = numSessions.intValue( );
            numSessions = new Integer(count - 1);
        }
        ctx.setAttribute("numSessions", numSessions);
    }
}



在这个解决方案中,任何一个Session被创建或者销毁时,都会通知SessionCounter 这个类,当然通知的原因是必须在web.xml文件中做相关的配置工作。如下面的配置代码:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    
<web-app>
  <display-name>Struts Examples</display-name>
  
  <listener>
      <listener-class>demo.listener.SessionCounter
      </listener-class>
  </listener>







分享到:
评论

相关推荐

    Spring boot通过HttpSessionListener监听器统计在线人数的实现代码

    在Spring boot中通过HttpSessionListener监听器统计在线人数是一种常见的技术实现方式,适用于需要跟踪和管理用户会话状态的Web应用程序。以下是从给定文件中提炼的关键知识点。 首先,了解HttpSessionListener接口...

    servlet 监听器范例

    例如,`HttpSessionListener`用于监听会话的创建和销毁,`ServletRequestListener`则关注请求的开始和结束。在这个“servlet 监听器范例”中,我们主要关注的是`HttpSessionListener`,因为它是追踪在线用户的关键。...

    tomcat监听器

    - `HttpSessionListener`: 监听会话的创建和销毁,可以用来管理会话状态,如过期检测、统计在线用户数等。 - `ServletRequestAttributeListener`: 监听请求属性的增加、删除和更新,用于实现动态属性管理和验证。 ...

    监听器实例jsp编写望大家喜欢

    例如,HttpSessionListener用于监听会话的创建和销毁,ServletRequestListener则监听请求的开始和结束。开发者可以通过实现这些接口并在web.xml配置文件中注册它们,使得监听器能够在Web应用程序的生命周期中发挥...

    web学习笔记 —— 监听器

    例如,`HttpSessionListener`用于监听会话的创建和销毁,`ServletRequestListener`则用于监听请求的开始和结束。通过注册监听器,开发者可以实现对Web应用程序中某些重要行为的跟踪和管理。 二、监听器的主要类别 1...

    过滤器和监听器的使用与区别

    常见的监听器包括HttpSessionListener、ServletRequestListener、ServletContextListener等,它们分别用于监听会话的创建、销毁,请求的初始化、完成,以及整个Web应用的初始化和销毁。在02.监听器.doc中,可能详述...

    Servlet的监听器小DEMO

    例如,如果你想要监听会话事件,可以实现`HttpSessionListener`或`HttpSessionAttributeListener`。 2. **实现接口方法**:为所选接口中的方法提供实现。例如,对于`HttpSessionListener`,你需要实现`...

    java web使用监听器实现定时周期性执行任务demo

    例如,ServletContextListener可以在Web应用启动和停止时执行代码,HttpSessionListener可以监听会话的创建和销毁。在这个场景中,我们将使用一个特定的监听器,即ServletContextListener,来实现定时任务。 1. **...

    servlet 监听器的实现

    此外,还可以使用`HttpSessionAttributeListener`来监听会话属性的添加、替换和移除。这在需要对会话中存储的数据进行跟踪或处理时非常有用。 总之,Servlet监听器提供了一种强大的机制,使开发者能够在Web应用的...

    Java可以监听客户端的请求、服务端的操作等。

    而`HttpSessionAttributeListener`则用于监听会话属性的变化: - `attributeAdded(HttpSessionBindingEvent se)`:当一个新的属性被添加到会话中时调用。 - `attributeRemoved(HttpSessionBindingEvent se)`:当...

    过滤器和监听器的使用

    例如,Session监听器可以监听会话的创建、过期等事件,ServletContext监听器可以监听上下文的初始化和销毁事件,Request监听器可以监听请求的开始和结束。监听器的实现通常需要实现特定接口,如HttpSessionListener...

    一个简单的监听器案例项目

    总之,这个"一个简单的监听器案例项目"为初学者提供了一个很好的起点,可以帮助他们掌握Java Web监听器的基本用法,并将其应用到自己的项目中。通过深入研究和实践,开发者能够提升对Web应用生命周期管理的理解,...

    HttpSessionListener 和HttpSessionBindingListener的区别 单点登录

    `HttpSessionListener`主要用于监听整个应用程序中的所有会话(`HttpSession`)的创建和销毁事件。这对于维护全局状态非常有用,例如在线用户列表。当一个新会话被创建或一个现有会话被销毁时,`HttpSessionListener...

    HttpSessionListener在线人数和历史访问量

    在Java Web开发中,`HttpSessionListener`是一个重要的接口,用于监听`HttpSession`对象的创建和销毁事件。这个接口是Java Servlet API的一部分,通过实现它,开发者可以获取到Web应用中的在线用户数量以及历史访问...

    JAVA Servlet监听器listener学习资料

    - `HttpSessionListener`: 监听HttpSession的创建和销毁,可以用于统计在线用户数量、管理会话超时等。 - `HttpSessionAttributeListener`: 监听HttpSession中属性的变化,可以用于记录用户的操作或实现数据同步。...

    servlet监听器技术源码

    Servlet监听器技术是Java ...可能包含如何创建监听器类,如何实现各种接口方法,以及如何在项目中部署和使用监听器等内容。深入学习这部分知识,对于理解Servlet容器的工作原理和构建高效的Web应用程序具有重要意义。

    Java的监听器种类

    ### Java的监听器种类 Java中的监听器是一种特殊类型的对象,它们主要负责监听特定的事件并在这些事件发生时执行相应的动作...理解并熟练掌握这些监听器的工作原理及其使用方法对于成为一名优秀的Java开发者至关重要。

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

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

    分布式会话demo.zip

    例如,使用`HttpSessionListener`监听会话创建和销毁事件,或者自定义`HttpSessionBindingListener`跟踪会话属性的变化。 4. **分布式缓存**:分布式缓存如Redis、Memcached常被用于存储和同步会话数据。它们提供高...

Global site tag (gtag.js) - Google Analytics