可以利用的是Listener. Servlet 2.2和2.3规范在这里略微有一些不一样。2.2中HttpSessionBindingListener可以实现当一个HTTPSession中的Attribute变化的时候通知你的类。而2.3中还引入了HttpSessionAttributeListener.鉴于我使用的环境是Visual age for Java 4和JRun server 3.1,他们还不直接支持Servlet 2.3的编程,这里我用的是HttpSessionBindingListener.
public class HttpSessionBinding implements javax.servlet.http.HttpSessionBindingListener { ServletContext application = null.
public HttpSessionBinding(ServletContext application) { super(). if (application ==null) throw new IllegalArgumentException("Null application is not accept."). this.application = application. }
public void valueBound(javax.servlet.http.HttpSessionBindingEvent e) { Vector activeSessions = (Vector) application.getAttribute("activeSessions"). if (activeSessions == null) { activeSessions = new Vector(). }