你遇到的这个情况不是浏览器缓存,而是服务器缓存。jsp是服务器产生的动态页面,什么叫动态页面,就是你每打开一次内容都是动态生成的,可能是不一样的,这种页面,浏览器怎么可能去缓存?浏览器缓存在HTTP协议的体系里,主要是用来缓存静态内容的,这一部分LZ可以深入研究研究。你遇到的情况是服务器缓存引起的,服务器出于性能考虑,不会每次都从硬盘上去读取文件,而是直接加载进内存,也就是缓存,所以你在硬盘上的修改并没有改变服务器响应请求时发回的内存。

解决方案 »

  1.   


    原来是这样,也就是说,包括ajax请求 ,链接都是服务器的缓存。我加了时间戳不是 解决了游览器缓存,而是服务器缓存。但为什么谷歌游览器没有缓存,ie却发生了读取缓存,这让我误解了
      

  2.   

    你好,经过查询,jsp是可以被游览器缓存的http://aumy2008.blogbus.com/logs/27584194.html,我想虽然jsp是服务器动态生成,但生成结果也是html文件,游览器得到相同地址,还是会缓存。大神- -,差点就被你忽悠瘸了
      

  3.   

    你好,经过查询,jsp是可以被游览器缓存的http://aumy2008.blogbus.com/logs/27584194.html,我想虽然jsp是服务器动态生成,但生成结果也是html文件,游览器得到相同地址,还是会缓存。大神- -,差点就被你忽悠瘸了服务器缓存什么东西不是你能控制的,这是服务器的实现细节,没有通用的标准,不同的服务器实现细节不一样。
    jsp是html,http协议没有限制jsp不能被缓存,但是缓存一个动态生成的页面有什么意义呢?你可以观察一下淘宝,淘宝的设置是,主页确实有浏览器缓存,用来减少其服务器的压力,但是这个缓存的时间比较短,不会很长,否则,你上线了一件商品,用户却查询不到,因为都被缓存拦截掉了。这里有一个权衡:是减少服务器压力,还是实时的展示服务器产生的动态数据。你的问题,是服务器缓存(我上面说的缓存还漏了一个东西,就是服务器会缓存jsp编译之后的servlet,而不会每次都重新编译)造成的,如果是tomcat,删掉%TOMCAT_HOME%下面有一个work文件夹里的东西,里面全是服务器缓存(把jsp编译成servlet),删了之后就会强迫tomcat重新读取静态文件和编译jsp,你的修改就生效了。
      

  4.   

    你好,经过查询,jsp是可以被游览器缓存的http://aumy2008.blogbus.com/logs/27584194.html,我想虽然jsp是服务器动态生成,但生成结果也是html文件,游览器得到相同地址,还是会缓存。大神- -,差点就被你忽悠瘸了服务器缓存什么东西不是你能控制的,这是服务器的实现细节,没有通用的标准,不同的服务器实现细节不一样。
    jsp是html,http协议没有限制jsp不能被缓存,但是缓存一个动态生成的页面有什么意义呢?你可以观察一下淘宝,淘宝的设置是,主页确实有浏览器缓存,用来减少其服务器的压力,但是这个缓存的时间比较短,不会很长,否则,你上线了一件商品,用户却查询不到,因为都被缓存拦截掉了。这里有一个权衡:是减少服务器压力,还是实时的展示服务器产生的动态数据。你的问题,是服务器缓存(我上面说的缓存还漏了一个东西,就是服务器会缓存jsp编译之后的servlet,而不会每次都重新编译)造成的,如果是tomcat,删掉%TOMCAT_HOME%下面有一个work文件夹里的东西,里面全是服务器缓存(把jsp编译成servlet),删了之后就会强迫tomcat重新读取静态文件和编译jsp,你的修改就生效了。
      我是在主页面点击update按钮修改后返回主页面,主页面还是原来的东西,没有改变,数据库里面是跟新了,但是主页面无变。这个是服务器缓存吗,如果是,为什么用谷歌游览器不会产生这种情况,求解答
      

  5.   

    -_-#...原来你是这么一个情况,我以为你描述的问题是你在服务器上修改了一个页面,但是在浏览器刷新不显示最新的页面如果是确认数据库里数据更新了,你可以尝试在出问题的浏览器里刷新页面,或者重新请求,看是不是能看到正确的结果。如果谷歌浏览器里不会出现数据错误的情况,说明不是服务器端的问题,原因可能出在客户端,可能是你用的客户端对你用的ajax什么的刷新技术支持不够?
      

  6.   

    你用 FF或者谷歌,可以用F12,打开控制台,监控你发送的请求和其响应,这样可以很清晰的看到服务器返回的数据是正确还是错误