jsp禁用缓存的方式response.setheader("pragma","no-cache");setdateheader("expir

不积跬步无以至千里      2022-02-13     710

关键词:


标签: jsp
技术分享 分类:

JSP禁用缓存的方式
    使用服务器端控制AJAX页面缓存:
        response.setHeader( "Pragma", "no-cache" );
        response.addHeader( "Cache-Control", "must-revalidate" );
        response.addHeader( "Cache-Control", "no-cache" );
        response.addHeader( "Cache-Control", "no-store" );
        response.setDateHeader("Expires", 0);
    单纯的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")无效。

    Cache-Control头域
      Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:
      Public指示响应可被任何缓存区缓存。
      Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
      no-cache指示请求或响应消息不能缓存
      no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
      max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
      min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
      max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。


    禁用IE缓存

    HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。

    普通报头中的Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.0使用的类似的报头域为Pragma。
    请求时的缓存指令包括:no-cache(用于指示请示或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;
    响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage。
    
    例:为了指示IE浏览器(客户端)不要缓存页面,服务器端的jsp程序可以编写如下:
    response.setHeader(“Cache-Control”, “no-cache”);
    //response.setHeader(“Pragma”, “no-cache”);作用相当于上行代码,通常两者合用

    Expires实体报头域给出响应过期的日期和时间。为了让代理服务器或浏览器在一段时间以后更新缓存中(再次访问曾访问过的页面时,直接从缓存中加载,缩短响应时间和降低服务器负载)的页面,我们可以使用Expires实体报头域指定页面过期时间。例:Expires:Thu,15 Sep 2006 16:23:12 GMT
    HTTP1.1的客户端和缓存必须将其他非法的日期格式(包括0)看作已经过期。如:为了让浏览器不要缓存页面,也可以利用Expires实体报关域,设置为0,jsp程序如下:
    response.setDateHeader(“Expires”, “0”);




































Windows 7 Embedded - 以编程方式禁用磁盘缓存:

】Windows7Embedded-以编程方式禁用磁盘缓存:【英文标题】:Windows7Embedded-DisableDiskCachingProgrammatically:【发布时间】:2020-08-0208:49:08【问题描述】:前言:我们使用Windows-7-Embedded图像制作我们软件的客户端副本。流程非常标准:使用... 查看详情

有没有办法在 Windows 中使用 C# 以编程方式禁用磁盘驱动器上的写入缓存策略?

】有没有办法在Windows中使用C#以编程方式禁用磁盘驱动器上的写入缓存策略?【英文标题】:IsthereawaytodisablethewritebehindcachingpolicyonadiskdriveprogrammaticallyusingC#inwindows?【发布时间】:2020-03-0420:08:30【问题描述】:我需要删除我们服... 查看详情

dom701:禁用了反向和正向缓存(开发者)

本人是小白,这是个问题也是写给那些一样遭遇的小白。ie弹出:虽然操作上没什么影响,但是本人有强迫症,有个警告在那有点不爽,然后百度了一下,基本答案都是。 页面数据接收出问题了,页面属性与Form属性不匹配。... 查看详情

在 Windows 上禁用或刷新页面缓存

】在Windows上禁用或刷新页面缓存【英文标题】:DisableorflushpagecacheonWindows【发布时间】:2014-05-0503:40:22【问题描述】:我假设Windows具有与Linux的页面缓存类似的概念,用于将磁盘中的数据(如文件、可执行文件和动态库)存储在... 查看详情

如何在 Windows 上更改 npm 的缓存路径(或完全禁用缓存)?

】如何在Windows上更改npm的缓存路径(或完全禁用缓存)?【英文标题】:HowcanIchangethecachepathfornpm(orcompletelydisablethecache)onWindows?【发布时间】:2013-01-2723:11:18【问题描述】:我已经在我的Windows7x64开发机器上安装了Node.js,手动方... 查看详情

PHP内置开发服务器:禁用缓存

】PHP内置开发服务器:禁用缓存【英文标题】:PHPbuilt-indevelopmentserver:disablecaching【发布时间】:2014-10-0302:05:42【问题描述】:有时我喜欢使用PHP的内置开发服务器来处理快速的事情,例如:php-S127.0.0.1:8888但是我似乎不时遇到严... 查看详情

强制客户端浏览器重新下载我们的 asp.net Web 应用程序的 .css 和 .js 文件的优雅方式(不完全禁用缓存)

...们的asp.netWeb应用程序的.css和.js文件的优雅方式(不完全禁用缓存)【英文标题】:Elegantwaytoforceclientbrowserstore-downloadourasp.netwebapp\'s.cssand.jsfiles(withouttotallydisablingcaching)【发布时间】:2013-07-1116:47:21【问题描述】:我们的asp.netWeb... 查看详情

反向代理背后的 SOP 问题

...乎无法以任何方式重写它们以使问题消失。这个我试过了response.setHea 查看详情

如何防止用户“返回”但在 JSP 中注销后保留缓存?

...+后退按钮时显示的缓存页面是浏览器中的设计。我知道禁用缓存是一种强制注销+返回强制重新验证的方法。使用JSP( 查看详情

java示例代码_在jsp中以编程方式清除浏览器缓存

java示例代码_在jsp中以编程方式清除浏览器缓存 查看详情

禁用okhttp的缓存

】禁用okhttp的缓存【英文标题】:DisableCacheofokhttp【发布时间】:2017-08-0513:58:11【问题描述】:我知道禁用okhttp的缓存是调用Request.cacheControl(CacheControl.FORCE_NETWORK)。是否可以从OkHttpClient.class设置cacheControl?因为我的所有请求都有1... 查看详情

如何在 Eclipse helios 中禁用 JSP 验证?

】如何在Eclipsehelios中禁用JSP验证?【英文标题】:HowtodisabletheJSPvalidationinEclipsehelios?【发布时间】:2012-02-1809:17:56【问题描述】:我在EclipseHelios3.6中设置了一个Maven项目。它可以完美地构建和部署。但它在我的项目上显示了一个... 查看详情

禁用某些图像的缓存

】禁用某些图像的缓存【英文标题】:Disablecacheforsomeimages【发布时间】:2010-10-1805:39:09【问题描述】:我使用PHP库生成一些图像。有时浏览器不会加载新生成的文件。如何仅对我动态创建的图像禁用缓存?注意:随着时间的推... 查看详情

浏览器,开发模式(禁用缓存)

web前端调试JS、html页面时,有时因为浏览器缓存的原因,真正运行的程序并非最新的程序,此时需要禁用浏览器缓存。chrome浏览器开发模式下禁用缓存的方法:1、首先F12进入开发模式2、勾选中“Disablecache(whileDevToolsisopen)” 查看详情

Drupal 9:如何禁用特定页面的缓存

】Drupal9:如何禁用特定页面的缓存【英文标题】:Drupal9:Howtodisablecacheforaspecificpage【发布时间】:2022-01-1517:11:20【问题描述】:如何在Drupal9中禁用特定页面的缓存,我找到了一个解决方案,但是它用于禁用所有页面的缓存,解... 查看详情

如何在 KeyCloak 中禁用所有形式的本地缓存?

】如何在KeyCloak中禁用所有形式的本地缓存?【英文标题】:HowtodisableallformsoflocalcachinginKeyCloak?【发布时间】:2020-10-0709:59:53【问题描述】:官方文档指定了如何禁用领域和用户缓存,但是如何禁用standalone.xml中的infinispan中提到... 查看详情

chrome禁用缓存:调试javascript

chrome对js和图片的缓存,导致调试的程序不是最新的,有时F5刷新了都没用。可以禁用缓存:先按F12,再按F1,勾选 Disablecache(whileDevToolsisopen)  查看详情

用于禁用 Chrome 中所有类型缓存的命令行标志

】用于禁用Chrome中所有类型缓存的命令行标志【英文标题】:CommandlineflagtodisablealltypesofcachesinChrome【发布时间】:2017-03-1120:57:13【问题描述】:我想在Chrome中使用命令行标志禁用内存缓存、磁盘缓存和其他类型的缓存。现在我用... 查看详情