监听器 listener
实现一个监听器的接口:
-
编写一个监听器,实现监听器的接口
public class OnlineCountListener implements HttpSessionListener { // 创建 session 监听,一旦创建了 session 就会触发这个监听事件 public void sessionCreated(HttpSessionEvent httpSessionEvent) { ServletContext context = httpSessionEvent.getSession().getServletContext(); System.out.println(httpSessionEvent.getSession().getId()); Integer onlineCount = (Integer) context.getAttribute("OnlineCount"); if (onlineCount == null){ onlineCount = new Integer(1); }else { int count = onlineCount.intValue(); onlineCount = new Integer(count+1); } context.setAttribute("OnlineCount",onlineCount); } /*session 销毁: * 1. 手动(getSession().invalidate()) * 2. 自动(配置 xml) * */ // 销毁 session 监听,一旦 session 被销毁,这个监听事件就会被触发 public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { HttpSession session = httpSessionEvent.getSession(); Integer onlineCount = (Integer) session.getAttribute("OnlineCount"); if (onlineCount == null){ onlineCount = new Integer(0); }else { int count = onlineCount.intValue(); onlineCount = new Integer(count-1); } session.setAttribute("OnlineCount",onlineCount); } }
-
配置 web.xml 中的 listener
<listener> <listener-class>com.aze.listener.OnlineCountListener</listener-class> </listener>