如何使用HttpSessionListener监听器
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇"如何使用HttpSessionListener监听器"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2025年02月01日如何使用HttpSessionListener监听器<%Map
这篇"如何使用HttpSessionListener监听器"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"如何使用HttpSessionListener监听器"文章吧。
HttpSessionListener监听器
定义监听器
package lee; import javax.servlet.*;import javax.servlet.annotation.*;import javax.servlet.http.*;import java.util.*;@WebListenerpublic class OnlineListener implements HttpSessionListener{ // 当用户与服务器之间开始session时触发该方法 public void sessionCreated(HttpSessionEvent se) { HttpSession session = se.getSession(); ServletContext application = session.getServletContext(); // 获取session ID String sessionId = session.getId(); // 如果是一次新的会话 if (session.isNew()) { String user = (String)session.getAttribute("user"); // 未登录用户当游客处理 user = (user == null) ? "游客" : user; Maponline = (Map ) application.getAttribute("online"); if (online == null) { online = new Hashtable (); } // 将用户在线信息放入Map中 online.put(sessionId , user); application.setAttribute("online" , online); } } // 当用户与服务器之间session断开时触发该方法 public void sessionDestroyed(HttpSessionEvent se) { HttpSession session = se.getSession(); ServletContext application = session.getServletContext(); String sessionId = session.getId(); Map online = (Map ) application.getAttribute("online"); if (online != null) { // 删除该用户的在线信息 online.remove(sessionId); } application.setAttribute("online" , online); }}
测试JSP
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@ page import="java.util.*" %>用户在线信息 在线用户:
<%=sessionId%> | <%=online.get(sessionId)%> |