jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
来源:互联网 发布:java web项目开发书籍 编辑:程序博客网 时间:2024/05/02 01:31
在工作中,经常在jsp页面中看到下面类似的一段代码:
response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1 response.addHeader("Cache-Control", "no-store"); //Firefox response.setHeader("Pragma", "no-cache"); //HTTP 1.0 response.setDateHeader("Expires", -1); response.setDateHeader("max-age", 0);
代码的前三行的功能都是一样的,只是为了兼容多浏览器而做的处理,都是用来阻止浏览器缓存由jsp或者servlet动态生成的内容。下面是英文原文的解释:
This is used to prevent the browser from caching your dynamic content generated by a JSP or Servlet.
You set this attribute in the HTTP header of the response object which would tell the browser not to cache this content. So everytime you request the page again, the browser would make a new request, instead of showing you a cached page.
使用服务器端控制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消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
response.setDateHeader("Expires", 0);
expires是response的一个属性
它可以设置页面在浏览器的缓存里保存的时间
超过设定的时间后就过期
过期后再次浏览该页面就需要重新请求服务器发送页面数据
如果在规定的时间内再次访问次页面
就不需从服务器传送 直接从缓存中读取
- jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
- jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
- 在php中如何使用浏览器的图片缓存?
- 使用Dojo实现页面不刷新提交数据时避免前台缓存的方法
- 使用ajax时浏览器何时缓存以及如何避免浏览器缓存
- jsp中如何获取客户端的浏览器和操作系统信息
- jsp中如何获取客户端的浏览器和操作系统信息
- jsp中如何获取客户端的浏览器和操作系统信息
- 如何避免因jsp刷新而重复提交数据
- 如何在VB中避免动态刷新图片时的闪烁问题
- 禁止客户端的浏览器缓存数据
- 在JSP中使用缓存
- 如何防止浏览器的缓存JSP页面
- 如何强制客户端刷新缓存
- IE浏览器中ajax使用缓存数据的问题
- 如何在点击浏览器前进、后退键时刷新页面而不读取缓存
- 如何在jsp中调用浏览器的打印功能
- 前端框架Bootstrap的Modal使用Ajax数据源,如何避免数据被缓存
- 关于Fast I/O和IRP
- 有待研究的文章列表
- 蛮力字符串匹配
- Dojo –Dialog在组件中传值
- vs2008之MessageBox函数的用法
- jsp中如何避免客户端浏览器在刷新时,使用缓存的数据
- chrome中拖动滚动条时发出报警声
- 善解人意是快乐成功的关键
- 全排列和全组合的问题
- ADF11g-005:ADF学习网址收藏
- ASP.NET 4.0 与 Entity Framework 4-第四篇-Entity Framework在三层架构中的使用
- API设计的黄金法则
- JAVA集合操作的利器:CollectionUtils
- 本地电脑轻松管理网站文件的WebDAV功能