小飞飞要忘记烦恼
2015-03-24 21:27
为什么userNumber是全局的?httpSessionListener不是对session的监控吗?session是用户的会话级别,应该每一个用户都有一个userNum才对呀,这样的话userNumber每次都会初始化猜对呀,想不通。我的想法是在sessionCreatred方法里面先获取application中的userName,然后再++
Listener 是单例的呀,老师的ppt 是不是错了? 应该是 一个HttpSessionListener 监听多个HttpSession?
Session是有多个,但是Listener只有一个,而userNumber是Listener的成员变量,所以是唯一的
另外这个Listener在服务器中是单例
getServletContext().setAttribute(),每次都放到ServletContext里,自然是全局的了.
我运行,我滴userNumber就是3,为啥
你也说了,userNumber是私有的。本类使用的,所以当有一个会话开启时,就会使用到该类的方法,运行userNumber++;因此,会造成一种是全局变量的假象。
但是本质上是一个类私有的变量,该类在每次调用方法时,都是使用的同一个对象。
它不是在上面定义了吗?
private int userNumber;
private的意思是私有的,在这个本类中可以随意的使用啊。
你要达到什么样的效果啊?
JAVA Web开发技术应用——监听器
76034 学习 · 155 问题
相似问题