jsp监听器实现的聊天室
不解:
用监听实现的在线用户人数统计,,如果在同一个浏览器中打开两个登陆窗口分别登陆不同的用户,,
在聊天室页面完全能显示用户人数,,那当这两个用户中有一个下线的时候怎么销毁这个对象呢,,
创建的时候是根据有新的session创建的用户对象。。
如果新打开一个浏览器就没类似的问题了,,可是难到不能在一个浏览器的登陆多个用户吗。。
------解决方案--------------------在一个浏览器中确实不能登陆多个用户,因为每个用户都需要维护一个session,而一个浏览器对应一个session
------解决方案--------------------要在一个浏览器中实现多个用户登录,就不能依赖cookie或者session来保存用户登录信息,可以用页面隐藏域保存登录信息就可以了。
------解决方案--------------------session监听器呀,监听session的创建和销毁,这样就可以统计人数了!
------解决方案--------------------session有销毁事件啊,增加这个listener就可以了
------解决方案--------------------在一个浏览器确实不同同时登陆,原因是你是根据session里面存的对象来判断的比如:user对象,在同一个浏览器中只有一个session,你登陆2个后面那个别名与你先前登陆的别名一样,就会覆盖,如果想要不覆盖,在同一浏览器登陆不同的账号,就得让session.setAttribute("别名",user)的别名每次都不一样...就不会覆盖了
------解决方案--------------------你可以实现HttpSessionBindingListener这个借口监听每个session的创建和销毁