1
我需要使持久性和用户特定的会话计数器。我做了这个Tomcat持久性和用户特定的会话计数器
package my.package;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
public class SessionCounter implements HttpSessionListener {
private static HashMap activeSessions;
public SessionCounter() {
//How to restore session count?
activeSessions = new HashMap();
}
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession();
String userName = session.getAttribute("username");
Integer count = (Integer) activeSessions.get(userName);
if (count != null) {
activeSessions.put(userName, Integer.valueOf(count.intValue() + 1));
} else {
activeSessions.put(userName, new Integer(1));
}
}
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
String userName = session.getAttribute("username");
Integer count = (Integer) activeSessions.get(userName);
if (count != null && count.intValue() > 0) {
activeSessions.put(userName, Integer.valueOf(count.intValue() - 1));
}
}
public static HashMap getActiveSessions() {
return activeSessions;
}
}
即使在重新启动tomcat后会话仍处于活动状态,但存储在我的activeSessions变量中的会话计数丢失。如何在重新启动后恢复会话计数?
&|也许是一个跟踪会话和存储数据库的过滤器? – 2012-04-26 22:37:17