package org.lxh.demo;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class LineDemo implements HttpSessionAttributeListener,
HttpSessionListener, ServletContextListener {
private ServletContext app = null; // 声明一个ServletContext对象
public void attributeAdded(HttpSessionBindingEvent arg0) {
List all = (List) this.app.getAttribute("alluser");
// 加入新的用户
all.add(arg0.getValue());
// 把修改后的集合重新放回app之中
this.app.setAttribute("alluser", all);
}
public void attributeRemoved(HttpSessionBindingEvent arg0) {
}
public void attributeReplaced(HttpSessionBindingEvent arg0) {
}
public void sessionCreated(HttpSessionEvent arg0) {
}
public void sessionDestroyed(HttpSessionEvent arg0) {
// session销毁时应该从列表中删除此人的信息,取出原始列表
List all = (List) this.app.getAttribute("alluser");
all.remove(arg0.getSession().getAttribute("name"));
// 把修改后的集合重新放回app之中
this.app.setAttribute("alluser", all);
}
public void contextDestroyed(ServletContextEvent arg0) {
}
public void contextInitialized(ServletContextEvent arg0) {
// 初始化时,准备好一个空的集合
this.app = arg0.getServletContext() ;
this.app.setAttribute("alluser", new ArrayList());
}
}