网站项目安全退出后,由于使用了springmvc中拦截器的配置,基本上不会出现在地址栏中输入链接直接跳转到页面的bug,
但是有一个页面例外,就是left.do,退出后第一次输入该地址仍然会跳转到页面,可再次刷新,就会跳转到登陆页,
为什么每次都会有这么一次缓存呢?
查看对应的jsp页面,发现里面把菜单缓存到了session里面,但是action里面缓存已经清空了啊,怎么还会出现这种状况,难道没有清除掉,下断点,单步跟踪,没问题,session是空的,那问题出在哪了?该不会是客户端缓存了吧,于是在left.jsp页面加入如下三句话,
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">//表示不缓存,立即过期
重复之前的操作,恩,效果不错,再也不会缓存一次了。over!
注意:
HTTP/1.0有一个功能比较弱的缓存控制机制:Pragma,使用HTTP/1.0的缓存将忽略Expires和Cache-Control头
Expires 表示存在时间,允许客户端在这个时间之前不去检查(发请求),等同max-age的
效果。但是如果同时存在,则被Cache-Control的max-age覆盖。
-------------------------------------------------------------------------------------------------------------------
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”);
//JSP禁止缓存代码
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.flushBuffer();
另,网上各种禁客户端缓存总结如下:
HTM网页
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
ASP网页
<%
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 1
Response.cachecontrol = "no-cache"
%>
PHP网页
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
JSP
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires", 0);
C#中禁止cache的方法!
Response.Buffer=true;
Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache";
在<%@ Page language="c#" Codebehind="A.aspx.cs" AutoEventWireup="false" Inherits="*.*" %>下面加上以下的代码:
<%@ OutPutCache Location="None"%> 能每次页面Load时都可以清空缓存
相关推荐
本资源包提供了关于"web项目页面缓存清除"的操作手册和相关资源,帮助开发者解决因缓存导致的问题,确保用户每次都能看到最新的网页内容,而无需手动刷新浏览器。以下是一些关键知识点: 1. **HTTP缓存机制**:HTTP...
网页缓存清除及页面刷新与关闭 知识点1: 网页缓存的概念 网页缓存是指浏览器将访问过的网页保存到本地缓存中,以便下次访问时可以快速加载。缓存可以分为两种:强制缓存和协商缓存。强制缓存是指浏览器在访问网页...
本文将深入探讨页面缓存的工作原理、如何在C#中实现页面缓存以及清除页面缓存的方法。 首先,我们需要了解ASP.NET中的两种主要缓存策略:输出缓存和数据缓存。输出缓存会保存完整的HTML页面,而数据缓存则用于存储...
### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...
缓存能够存储网页的静态资源,如图片、CSS样式表和JavaScript文件,以提高页面加载速度,提升用户体验。然而,有时为了调试或者隐私考虑,我们需要清除这些缓存。本文将详细介绍如何使用Chrome扩展程序以及...
在这个场景下,"易语言完美清除IE缓存和Cookies等"是指使用易语言编写的程序,专门用于清理Internet Explorer(IE)浏览器的临时互联网文件、Cookies和其他浏览历史数据。 首先,我们需要理解IE缓存和Cookies的概念...
Internet Explorer(IE)是微软公司开发的网页浏览器,它有一个本地缓存系统,用于存储用户访问过的网页的静态资源,如图片、CSS样式表和JavaScript文件等,以提高再次访问这些页面时的加载速度。随着时间的推移,...
输出缓存主要用于缓存页面的一部分或全部输出;而数据缓存则用于缓存应用程序中的数据对象。 #### 2. ASP.NET中的数据缓存 在ASP.NET中,数据缓存是通过`System.Web.Caching.Cache`类来实现的。这个类提供了一系列...
IE缓存清理软件是一种专门针对Internet Explorer浏览器的清理工具,它设计的目的是为了帮助用户高效地清除浏览过程中产生的各种临时文件、缓存数据、历史记录等,以释放硬盘空间,提高计算机运行速度,并保护用户的...
6. **DateclearManger**:这个文件名可能是某个清理工具或应用的一部分,可能用于管理日期相关的缓存清理。具体功能需要结合应用本身来理解。 7. **手动和定期清理**:除了通过系统设置,用户还可以使用各种清理...
"chrome缓存清理神器"就是为了解决这一问题而设计的。 该神器是一款Chrome浏览器的扩展程序,名为"clean-cache_v1.0.2.crx",它的主要功能是一键清理浏览器的缓存文件。用户只需将这个CRX文件拖入Chrome的“更多...
### 如何清除Tomcat缓存 在Web开发中,Tomcat服务器因其轻量级、高效能及开源等特性被广泛采用。然而,在部署或更新应用的过程中,有时会遇到因缓存导致的问题,如新发布的代码未能立即生效。因此,学会如何有效地...
标题中的“ie缓存清理工具”指的是专门针对Internet Explorer(简称IE)浏览器的缓存清理软件。IE缓存是浏览器为了提高网页加载速度而存储在本地计算机上的临时互联网文件,包括图片、脚本、HTML页面等。随着时间的...
1. **一键清理**:用户可以通过简单的操作,一键清除所有动态缓存,避免因为缓存中的旧数据导致页面显示不正确的问题。 2. **智能选择**:除了全量清理,插件还允许用户根据需要选择特定模块或页面的缓存进行清理,...
最后,“ie缓存”明确了这是针对IE浏览器的解决方案,因为不同的浏览器可能有各自的缓存清理方式。 总结一下,这个“一键删除IE浏览器缓存脚本”是一个批处理文件,能够快速、方便地清理Internet Explorer的浏览...
然而,随着时间的推移,缓存可能会变得过大,占用过多的存储空间,这时就需要进行缓存清理。"OC清除缓存Demo"是一个实例项目,展示了如何在Objective-C中实现这一功能。 首先,我们来看一下缓存的基本概念。缓存...
在Windows操作系统中,缓存清理是一项重要的日常维护任务,它有助于优化系统性能、释放磁盘空间并提升系统响应速度。"windows 缓存清理,点击即可清理"的标题和描述表明,这是一个简单易用的工具,用户只需点击一下...
ThinkPHP 清理缓存最新TP5.0/6.0有效完全代码 , 1 . 清除模版缓存 不删除cache目录 。。。。 2 . 清除模版缓存 不删除 temp目录 。。。 3 . 清除日志缓存 不删出log目录 使用循环方式获取所以有效的文件夹
在智能手机的日常使用中,APP清理缓存是一个重要的维护步骤,它可以帮助优化设备性能、节省存储空间,并提高应用运行速度。缓存是应用程序在运行过程中为了加速数据加载而临时存储的一些数据,但随着时间的推移,...
用户只需双击运行这个批处理文件,就能快速完成缓存清理,无需手动通过浏览器设置进行操作。 清除IE缓存的具体步骤通常包括: 1. 打开命令提示符(CMD)。 2. 使用`cd`命令切换到批处理文件所在目录。 3. 输入运行...