使用ServletContextListener和HttpSessionListener两种监听器实现记录当前网站在线人数
web.xml中配置:
 <listener>
    <listener-class>com.mcm.listener.ServletContextListenerImpl</listener-class>
   </listener>
   <listener>
    <listener-class>com.mcm.listener.HttpSessionListenerImpl</listener-class>
   </listener>
ServletContextListenerImpl类:
package com.mcm.listener;
import javax.servlet.ServletContext;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
public class ServletContextListenerImpl implements ServletContextListener {
public void contextDestroyed(ServletContextEvent event) {
   ServletContext application = event.getServletContext();
   application.removeAttribute("onLineNum");
 }
public void contextInitialized(ServletContextEvent event) {
   int num = 0;
   ServletContext application = event.getServletContext();
   application.setAttribute("onLineNum", num);
 }
}
 
HttpSessionListenerImpl类:
package com.mcm.listener;
import javax.servlet.ServletContext;
 import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionListener;
public class HttpSessionListenerImpl implements HttpSessionListener {
 public void sessionCreated(HttpSessionEvent event) {
   ServletContext application = event.getSession().getServletContext();
   Integer num = (Integer) application.getAttribute("onLineNum");
   if(num != null){
    int count = num;
    count = count + 1;
    application.setAttribute("onLineNum", count);
   }
  }
 public void sessionDestroyed(HttpSessionEvent event) {
   ServletContext application = event.getSession().getServletContext();
   Integer num = (Integer) application.getAttribute("onLineNum");
   int count = num;
   count = count - 1;
   application.setAttribute("onLineNum", count);
   
  }
}
 
index.jsp中:
当前在线人数:${onLineNum }
结果:
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号