session统计在线人数

xiaoxiao2021-02-28  93

package com.hyq.common.utils; import java.util.ArrayList; import javax.servlet.ServletContext; import javax.servlet.http.HttpSessionAttributeListener; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class HyqUtilsOnlineListener implements HttpSessionListener, HttpSessionAttributeListener { // 参数 ServletContext sc; ArrayList list = new ArrayList ();//用来存储Session值 int onlinecount = 0; // 新建一个session时触发此操作 public void sessionCreated(HttpSessionEvent se) { sc = se.getSession().getServletContext(); onlinecount++; sc.setAttribute("onlinecount", onlinecount); System.out.println("创建:"+onlinecount); /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("创建:"+se.getSession().getId()); System.out.println("时长:"+se.getSession().getMaxInactiveInterval()); System.out.println("最后访问:"+sdf.format(se.getSession().getLastAccessedTime()));*/ } // 销毁一个session时触发此操作 public void sessionDestroyed(HttpSessionEvent se) { onlinecount--; sc.setAttribute("onlinecount", onlinecount); System.out.println("销毁:"+onlinecount); /*System.out.println("销毁:"+se.getSession().getId()); System.out.println("最后访问:"+se.getSession().getLastAccessedTime()); if (!list.isEmpty()) { //list.remove((String) se.getSession().getAttribute("userName")); sc.setAttribute("list", list); }*/ } // 在session中添加对象时触发此操作,在list中添加一个对象 public void attributeAdded(HttpSessionBindingEvent sbe) { sc.setAttribute("onlinecount", onlinecount); System.out.println("向session中添加值:"+onlinecount); } // 修改、删除session中添加对象时触发此操作 public void attributeRemoved(HttpSessionBindingEvent sbe) { sc.setAttribute("onlinecount", onlinecount); System.out.println("删除session对应属性:"+onlinecount); } public void attributeReplaced(HttpSessionBindingEvent sbe) { sc.setAttribute("onlinecount", onlinecount); System.out.println("值替换"); } } com.hyq.common.utils.HyqUtilsOnlineListener 10
转载请注明原文地址: https://www.6miu.com/read-66945.html

最新回复(0)