zoukankan      html  css  js  c++  java
  • session的使用

    session的使用

    整体思路

    重写HttpSessionListener方法;

    在Listener中设置全局的计数器。

    当网页有新的访问就更新计数器。

    然后在服务端设置一个超时时间,

    超过一定时间且用户没有活动时,

    Session才会过期然后触发事件。

    所以这个统计不会是实时准确的。

     实验效果

     

    Listener.java
    package com.fakeweb.session;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    @WebListener
    public class SessionListener implements HttpSessionListener{
        private Integer TotalOnline=0;
        
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        @Override
        public void sessionCreated(HttpSessionEvent arg0) {
            // TODO Auto-generated method stub
            TotalOnline++;
            System.out.println("已创建"+sdf.format(new Date())+"目前在线人数:"+TotalOnline);
            arg0.getSession().getServletContext().setAttribute("online", TotalOnline);
            /*
             * 参考链接
             * https://www.pocketdigi.com/20120405/753.html
             */
        }
    
        @Override
        public void sessionDestroyed(HttpSessionEvent arg0) {
            // TODO Auto-generated method stub
            TotalOnline--;
            System.out.println("已销毁"+sdf.format(new Date())+"目前在线人数:"+TotalOnline);
            arg0.getSession().getServletContext().setAttribute("online", TotalOnline);
    
        }
    
    }

    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app ...>
            
       ...
        
      <listener>
          <listener-class>com.fakeweb.session.SessionListener</listener-class>
      </listener>
    
      <session-config>  
         <session-timeout>2</session-timeout>  
      </session-config>  
     
       ...  
    
    </web-app>

     <input type="text" value="当前在线人数<%=(Integer)application.getAttribute("online")%>" ......>

    百度云

     链接: https://pan.baidu.com/s/1687WynllFZ0DN95TnsdGDQ 提取码: z5us 复制这段内容后打开百度网盘手机App,操作更方便哦

    参考连接

    https://www.pocketdigi.com/20120405/753.html

  • 相关阅读:
    node.js基础回顾
    PHP基础回顾之表单(二)
    PHP基础回顾(一)
    知识图谱Knowledge Graph
    Qt addStretch()详解
    Qt实现 QQ好友列表QToolBox
    Qt5
    用户级线程和内核级线程
    TCP状态转换图、滑动窗口、半连接状态、2MSL
    理解tcp顺序释放操作和tcp的半关闭
  • 原文地址:https://www.cnblogs.com/HuppertWu/p/10659209.html
Copyright © 2011-2022 走看看