销毁问题?
在销毁时要不要先把在上下文的userName先拿出来再减在放进去 这样直接减会用吗?
在销毁时要不要先把在上下文的userName先拿出来再减在放进去 这样直接减会用吗?
2016-08-27
你说的userName,是指的是userNumber吧?
服务器启动时会创建唯一的 MyHttpSessionListener 对象,所有的session 创建和销毁都会走这个对象里的两个方法, userNumber 是一个全局属性,变量 userNumber 和 ServletContext中的 userNumber是同步的。所以不用多此一举。
public class MyHttpSessionListener implements HttpSessionListener {
private int userNumber = 0;
@Override
public void sessionCreated(HttpSessionEvent arg0) {
userNumber++;
arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);
}
@Override
public void sessionDestroyed(HttpSessionEvent arg0) {
userNumber--;
arg0.getSession().getServletContext().setAttribute("userNumber", userNumber);
}
}举报