|
JavaWeb中的Session
SessionListener
應(yīng)用:在線人數(shù)統(tǒng)計 import java.util.HashSet; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class MySessionListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent event) { HttpSession session = event.getSession(); ServletContext application = session.getServletContext(); // 在application范圍由一個HashSet集保存所有的session HashSet sessions = (HashSet) application.getAttribute("sessions"); if (sessions == null) { sessions = new HashSet(); application.setAttribute("sessions", sessions); } // 新創(chuàng)建的session均添加到HashSet集中 sessions.add(session); // 可以在別處從application范圍中取出sessions集合 // 然后使用sessions.size()獲取當(dāng)前活動的session數(shù),即為“在線人數(shù)” } public void sessionDestroyed(HttpSessionEvent event) { HttpSession session = event.getSession(); ServletContext application = session.getServletContext(); HashSet sessions = (HashSet) application.getAttribute("sessions"); // 銷毀的session均從HashSet集中移除 sessions.remove(session); } } |
|
|