黑马程序员技术交流社区

标题: 监听器类中属性的存在问题 [打印本页]

作者: sishuidliunian    时间: 2016-5-27 22:51
标题: 监听器类中属性的存在问题
  1. package listener;

  2. import javax.servlet.http.HttpSessionEvent;
  3. import javax.servlet.http.HttpSessionListener;

  4. public class MySessionListener implements HttpSessionListener {
  5.        
  6.         private int userNum;
  7.        
  8.         @Override
  9.         public void sessionCreated(HttpSessionEvent arg0) {
  10.                 userNum++;
  11.                 arg0.getSession().setAttribute("userNum", userNum);
  12.         }
  13.        
  14.         @Override
  15.         public void sessionDestroyed(HttpSessionEvent arg0) {
  16.                 userNum--;
  17.                 arg0.getSession().setAttribute("userNum", userNum);
  18.         }
  19. }
复制代码
如代码所示,userNum该属性是在类中定义,当一个session的创建和销毁只会影响userNum这个属性?也就是监听器这个类和类中的属性会一直存在吗?
具体而言,userNu并没用通过ServletContextgetAttribute方法获取,而是直接使用的初始化定义的userNum。第二个session创建的时候可以知道userNumber已经有值了,那是不是说监听器的创建和销毁都是在public class MyHttpSessionListener这个类中进行的,而这个类的存在并不受监听器的影响





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2