import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class OaSessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent arg0) {
HttpSession session = arg0.getSession();
ServletContext application = session.getServletContext();
// 把使用者名放入線上清單,在application範圍有一個List集儲存所有的Session
List onlineUserList = (List) application.getAttribute("onlineUserList");
// 第一次使用前,需要初始化
if (onlineUserList == null) {
onlineUserList = new ArrayList();
application.setAttribute("onlineUserList", onlineUserList);
}
// 新建立的session均添加到List集中
onlineUserList.add(onlineUserList);
System.out.println("目前線上人數:" + onlineUserList.size() + "人");
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
HttpSession session = arg0.getSession();
ServletContext application = session.getServletContext();
List onlineUserList = (List) application.getAttribute("onlineUserList");
//銷毀的session均從List中移除
onlineUserList.remove(onlineUserList);
System.out.println("使用者退出或登入逾時之後使用者線上人數:" + onlineUserList.size() + "人");
}
}