• 使用ServletContextListener和HttpSessionListener两种监听器实现记录当前网站在线人数


    web.xml中配置:

     <listener>
       <listener-class>com.mcm.listener.ServletContextListenerImpl</listener-class>
      </listener>
      <listener>
       <listener-class>com.mcm.listener.HttpSessionListenerImpl</listener-class>
      </listener>

    ServletContextListenerImpl类:

    package com.mcm.listener;

    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;

    public class ServletContextListenerImpl implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent event) {
      ServletContext application = event.getServletContext();
      application.removeAttribute("onLineNum");
    }

    public void contextInitialized(ServletContextEvent event) {
      int num = 0;
      ServletContext application = event.getServletContext();
      application.setAttribute("onLineNum", num);
    }

    }

    HttpSessionListenerImpl类:

    package com.mcm.listener;

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

    public class HttpSessionListenerImpl implements HttpSessionListener {

     public void sessionCreated(HttpSessionEvent event) {
      ServletContext application = event.getSession().getServletContext();
      Integer num = (Integer) application.getAttribute("onLineNum");
      if(num != null){
       int count = num;
       count = count + 1;
       application.setAttribute("onLineNum", count);
      }
     }

     public void sessionDestroyed(HttpSessionEvent event) {
      ServletContext application = event.getSession().getServletContext();
      Integer num = (Integer) application.getAttribute("onLineNum");
      int count = num;
      count = count - 1;
      application.setAttribute("onLineNum", count);
      
     }

    }

    index.jsp中:

    当前在线人数:${onLineNum }

    结果:

  • 相关阅读:
    目录结构
    RabbitMQ 将监听的IP从localhost修改为指定IP
    概念
    RabbitMQ 基础概念
    修改shell提示符的显示格式
    VIM常用设置
    RabbitMQ 开启WEB管理
    用pecl/pear独立编译PHP扩展 vs. 把扩展编译到PHP内核中
    安装composer
    安装php-amqplib(RabbitMQ的phpAPI)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3201138.html
Copyright © 2020-2023  润新知