A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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这个类中进行的,而这个类的存在并不受监听器的影响

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马