当访问该web项目中任意一个jsp页面时,服务器都会为用户分配一个确定的session值,且不同用户的session值不同。用户退出浏览器的时候,该session值就会消失。同时,监听器能洞悉session的创建和删除,因而能够统计出当前在线人数。
package stu.qg.web.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class TestListener implements HttpSessionListener {
public static int num=0;
public TestListener() {
}
public void sessionCreated(HttpSessionEvent arg0) {
ServletContext servletContext=arg0.getSession().getServletContext();
num=(Integer)servletContext.getAttribute("num");
num++;
servletContext.setAttribute("num", num);
}
public void sessionDestroyed(HttpSessionEvent arg0) {
ServletContext servletContext=arg0.getSession().getServletContext();
num=(Integer)servletContext.getAttribute("num");
if(num==0){
servletContext.setAttribute("num", 0);
}
else{
num--;
servletContext.setAttribute("num", num);
}
}
}