问题描述
很抱歉问题这么模糊,因为我也不太确定是什么问题;详情如下:用JAVA写了一个登陆,是根据用户角色不同分配栏目,系统管理员与普通用户所能操作的栏目不一样。所以我把登陆用户的相关信息放入session中,登陆者的用户名,登陆者的角色(系统管理员、普通用户)。系统管理员A登陆正常,退出后,用普通用户B登陆也是正常,退出再用系统管理员A登陆,却显示的仍然是普通用户B的相关信息。以上问题只在IE8浏览器中出现,FF、IE6、谷歌浏览器均没有出现此问题。我也试着在退出时,让session失效,不过还是不好用。在退出时remove掉存入session中的值,不过下次用这个用户登陆的时候,从session中取登陆用户的用户名却取不到了。我在所有的页面中均加入了取消页面缓存的代码,可是还是存在问题。请问各位,我应该如何解决此问题,百度了好久,始终无法解决,才来论坛提问,先谢谢各位! 问题补充:akunamotata 写道
解决方案
IE8 的session是共享的,网上找了一段,参考下------------------今天在开发中发现微软最近推出的IE8存在会话共享的问题,在之前版本,例如IE6或IE7,如果同时打开两个窗口会产生两个会话,彼此互不影响。但IE8中的情况截然不同,虽然可同时打开多个窗口,但他们共用了一个会话,开始原以为自己的程序有问题,原来是这个在作祟。GOOGLE中找到了一些解决办法,可以借鉴:用户通过菜单 File > New session 打开新窗口,或者使用命令行参数 iexplore.exe -nomerge 来打开IE。
解决方案二:
应该在登录和退出时这样做才行:登录:session.setAttribute("login_id", lt.getId());session.setAttribute("nickname", lt.getNickname());退出:session.removeAttribute("login_id");session.removeAttribute("nickname");我的也是在IE8 ,不会出现这种问题。
解决方案三:
IE 7,8中选项卡是共session id的,你开个新窗口试过没?
解决方案四:
浏览器版本问题
解决方案五:
我的IE8出现同样问题
解决方案六:
工具->Internet选项->设置->检查网页的较版本,选每次访问页面时。试一下
解决方案七:
session的话一个是url重写,一个是cookie的形式,url重写是不可能了,你观察下cookie~~请求的时候是否带了缓存的cookie
解决方案八:
取消不行的话,你可以在页面设置一下当前的用户对应的session对象为null啊
解决方案九:
引用同学你这个是不是在退出的时候没有清理掉SESSION里面对应的用户信息? 如果是正常退出应该用程序清理掉SESSION里面的信息,然后在登陆的时候也就是填完用户名与密码后,应该重置SESSION的用户信息,即A登陆成功后,SESSION.setAttarbute("user_info",A); 如果是B登陆即SESSION.setAttarbute("user_info",B);这样的话,用同一个KEY值,在登陆成功后都重置用户信息,即例你正常退出没有清理SESSION的值.也不会出现重复应该不会吧. 要是这个问题 其他游览器也不会正常的. 只有lz讲只有ie8有这样的问题. ie8确实很恶心。 session和缓存机制都不一样. 个人觉得这样的问题 应该是缓存的问题. 设置页面不缓存试试
解决方案十:
缓存问题。。鉴定完毕....
解决方案十一:
引用同学你这个是不是在退出的时候没有清理掉SESSION里面对应的用户信息? 如果是正常退出应该用程序清理掉SESSION里面的信息,然后在登陆的时候也就是填完用户名与密码后,应该重置SESSION的用户信息,即A登陆成功后,SESSION.setAttarbute("user_info",A); 如果是B登陆即SESSION.setAttarbute("user_info",B);这样的话,用同一个KEY值,在登陆成功后都重置用户信息,即例你正常退出没有清理SESSION的值.也不会出现重复! 是这个问题?不是吧...
解决方案十二:
同学你这个是不是在退出的时候没有清理掉SESSION里面对应的用户信息?如果是正常退出应该用程序清理掉SESSION里面的信息,然后在登陆的时候也就是填完用户名与密码后,应该重置SESSION的用户信息,即A登陆成功后,SESSION.setAttarbute("user_info",A);如果是B登陆即SESSION.setAttarbute("user_info",B);这样的话,用同一个KEY值,在登陆成功后都重置用户信息,即例你正常退出没有清理SESSION的值.也不会出现重复!
解决方案十三:
引用我先用B用户登陆,然后用A用户登陆,退出后再使用B用户登陆,出现的还是A用户的相关信息~三次登陆,浏览器不关闭!A用户登陆后,清理过缓存,再用B用户登陆,还是A用户的相关信息?那就不是缓存问题了,页面也没有报错?只有IE8才有这个问题,那也不是后台代码的问题...纠结...
解决方案十四:
引用系统管理员A登陆正常,退出后,用普通用户B登陆也是正常,退出再用系统管理员A登陆,却显示的仍然是普通用户B的相关信息。 建议你B登陆正常后,退出,清一下页面缓存,再用A登陆看看什么情况。