下面是我的一个listener:-------------------------------
package mypackage;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSession;public class countlistener implements javax.servlet.http.HttpSessionListener 
{
  private HttpSession session = null;
  int count;
  public void sessionCreated(HttpSessionEvent event)
  {
    count=count+1;
    session = event.getSession();
    ServletContext sc=session.getServletContext();
    sc.setAttribute("c",new Integer(count));
  }
  public void sessionDestroyed(HttpSessionEvent event)
  {
    session = event.getSession();
  }
}
  它的作用是每次创建一个新会话,count加1,然后赋给容器的属性c,然后在其他的页面里把这个属性值取出来显示出来,第一次创建会话后,属性c的值为1,这没有问题,可之后不管创建多少个新会话,属性c的值始终是1,这是为什么啊,?? 郁闷死了
   大家出出注意啊...

解决方案 »

  1.   

    count 是局部变量,每次都是一样的count = (Integer)sc.getAttribute("c") + 1;
      

  2.   

    ??我的count是定义在方法之外的啊..
     怎么会是局部变量呢?
       还是我的理解有误?
         那怎么把count定为全局变量啊?
      

  3.   

    int count; 是类变量,(前次误说是局部变量)我想,可能是 每次对这个servlet的请求会创建一个它的 新实例,
      

  4.   

    是啊 我也觉得是这样的
       每次对这个servlet请求都会创建一个 它的新实例,
    怎么才可以避免这种情况啊???????????????????????????????????
         怎么才能让我的变量c在每创建一次会话之后不断加1呢?/