页面缓存问题?还是session问题?

问题描述

很抱歉问题这么模糊,因为我也不太确定是什么问题;详情如下:用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登陆看看什么情况。

时间: 2024-09-22 01:17:39

页面缓存问题?还是session问题?的相关文章

SSH框架网上商城项目第19战之订单信息级联入库以及页面缓存问题_java

购物车这一块还剩最后两个问题,就是订单信息的级联入库和页面缓存,这里的信息是指购物车和购物项,即我们将购物车的信息存入数据库的同时,也存入每个购物项的信息,而且外键都关联好,这涉及到了Hibernate中的级联入库问题:页面缓存问题指的是当用户确认了订单后,如果点后退,又会回到订单确认页面,刚刚的订单确认页面又出来了,而且session还在,信息还是刚刚的信息,这明显不是我们想要的结果,我们会在后面一一分析.这一节主要来讨论订单信息的级联入库以及页面的缓存问题.1. 订单信息的级联入库Hiber

JSP清除页面缓存常用方法小结_JSP编程

本文实例总结了JSP清除页面缓存常用方法.分享给大家供大家参考,具体如下: 一.清除页面缓存 在jsp页里 <%response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); response.flushBuffe

Zend Framework页面缓存实例_php实例

一般使用工厂方式:Zend_Cache::factory()的创建缓存对象.   Zend_Cache::factory方法有四个参数: 前端类型,后端类型,前端参数,后端参数.   以下为页面缓存实例: class Zend_Controller_Shawn extends Zend_Controller_Action { public static $cache; public function init() { $frontendOptions = array( 'lifetime' =>

利用Spring MVC轻松实现页面缓存

缓存|页面 Spring的MVC是一个非常灵活的框架,可以无缝集成Struts/WebWork以及Velocity/Tapestry等View技术.Spring的DispatherServlet定义极为灵活,由于是开源框架,我们通过源代码,能轻松定制自己的处理流程. 为了实现页面缓存,可以改写DispatherServlet的doService()方法,这里提出一个解决方案: 利用WrappedResponse获得handler处理后的内容,然后缓存起来,这样在下次请求时,可以直接输出缓存内容.

禁止页面缓存的方法

缓存|页面 1, 在jsp或者servlet中加入 <%response.setHeader("Pragma","No-cache");response.setHeader("Cache-Control","no-cache");response.setDateHeader("Expires", 0);%> 2, 在页面中使用HTML标记,如下面: <HEAD><META ht

关于页面缓存清除的方法小结(整理)

缓存|页面      每次上Chinaasp总有不少的网友问及如何使Asp页面刷新,在IIS4的管理下页面的不刷新问题较IIS5严重得多,而且有时确实加入一些控制页面缓存的语句还是不起什么作用.原因我也不是很清楚,去问问微软吧:-)现在我将清除页面缓存的一些方法总结如下:1.在Asp页面首部加入Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl

关于页面缓存清除的方法小结

缓存|页面 每次上Chinaasp总有不少的网友问及如何使Asp页面刷新,在IIS4的管理下页面的不刷新问题较IIS5严重得多,而且有时确实加入一些控制页面缓存的语句还是不起什么作用.原因我也不是很清楚,去问问微软吧:-)现在我将清除页面缓存的一些方法总结如下:1.在Asp页面首部加入Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "n

真实世界中的Rails,第2部分: 高级页面缓存

使用 JavaScript 和 cookies 扩展页面缓存 简介:通常,与用户相关的内容不适于使用页面缓存,原因是针对每个用户的内容会有细微的不同. 通过 JavaScript 和 cookies,甚至可以在显示某些自定义用户数据时采用页面缓存.本文将研究 Ruby on Rails 中的高级页面缓存. 有了页面缓存,Rails 就可以不再介入.在某种程度上,这是件好事 ,因为您的确可以获得优秀的性能.Rails 只需创建 HTML 页面,将其放入目录,之后,就可以置之于脑 后.从那时起,就由

ASP.NET:页面缓存

ASP.NET 提供三种主要形式的缓存:页面缓存.用户控件输出缓存和缓存 API. 页面输出缓存作为最简单的缓存形式,将已经生成的动/静太页面全部内容保存在服务器内容中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.在这个过程中,缓存不再要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面. 实现页面输出缓存,通常可以用以下两种方法: 一.使用@ OutputCache指令 使