import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MyListener implements HttpSessionListener, ServletContextListener { //session创建时 @Override public void sessionCreated(HttpSessionEvent se) { // 获取ServletContext 对象 ServletContext ser2 = se.getSession().getServletContext(); // 获取在线人数统计变量 int count = (int)ser2.getAttribute("count"); ser2.setAttribute("count",++count); } //session销毁时 @Override public void sessionDestroyed(HttpSessionEvent se) { // 获取ServletContext 对象 ServletContext ser2 = se.getSession().getServletContext(); // 获取在线人数统计变量 int count = (int)ser2.getAttribute("count"); ser2.setAttribute("count",--count); } // application 对象初始化 @Override public void contextInitialized(ServletContextEvent ser) { // 获取application ServletContext ser2 = ser.getServletContext(); // 在application对象存储变量统计在线人数 ser2.setAttribute("count",0); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { } }
web.xml 配置监听器 <listener> <listener-class>com.suicai.listener.MyListener</listener-class> </listener>
jsp 取值 ${applicationScope.count}