让HTML和JSP页面不缓存从Web服务器上重新获取页面

当点击后退按钮时,默认情况下浏览器不是从Web服务器上重新获取页面,而是从浏览器缓存中载入页面,那么怎么才能让HTML和JSP页面不缓存呢?下面为大家介绍下比较详细的解决方法

 

用户退出后,如果点击浏览器上的后退按钮,Web应用将不能正确保护受保护的页面——在Session销毁后(用户退出)受保护的JSP页重新在浏览器中显示出来。
然而,如果用户点击返回页面上的任何链接,Web应用将会跳转到登陆页面并提示Session has ended.Please log in.

上述问题的根源在于大部分浏览器都有一个后退按钮。

当点击后退按钮时,默认情况下浏览器不是从Web服务器上重新获取页面,而是从浏览器缓存中载入页面。

基于Java的Web应用并未限制这一功能,在基于PHP、ASP和.NET的Web应用中也同样存在这一问题。
幸运的是,HTTP头信息“Expires”和“Cache-Control”为应用程序服务器提供了一个控制浏览器和代理服务器上缓存的机制。

HTTP头信息Expires告诉代理服务器它的缓存页面何时将过期。
HTTP1.1规范中新定义的头信息Cache-Control可以通知浏览器不缓存任何页面。

当点击后退按钮时,浏览器重新访问服务器已获取页面。

如下是使用Cache-Control的基本方法:
1) no-cache:强制缓存从服务器上获取新的页面
2) no-store: 在任何环境下缓存不保存任何页面

保险起见,对html页面和jsp最好都加一些设置

对于HTML网页,加入:

复制代码
代码如下:

<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="0">

对于JSP页面,加入:

复制代码
代码如下:

<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
%>

就可以了。

时间: 2024-11-03 16:43:53

让HTML和JSP页面不缓存从Web服务器上重新获取页面的相关文章

java 上传图片到服务器上,在页面上不能显示,急急急,在线等,求大神帮忙!!!!!

问题描述 java 上传图片到服务器上,在页面上不能显示,急急急,在线等,求大神帮忙!!!!! java 上传图片到服务器上,图片上传成功,但是在页面展示时不能加载,路径没问题,手动将上传的图片改个名字后能正常加载 解决方案 最终的上传路径有没有特殊字符或者空格啥的,最好不要带特殊字符包括空格啥的. 解决方案二: 图片在内网服务器上A,部署在服务器B的应用要显示图片,受网络限制外网用户无法访问到图片,为了解决这个问题现将图片下载到服务器B上,现在服务器B上存在图片,但是不能正常加载,通过手动地对

android 使用webview加载服务器上的html页面只能显示文字无法显示图片

问题描述 android 使用webview加载服务器上的html页面只能显示文字无法显示图片 android 使用webview加载服务器上的html页面时,在低版本上的系统上没有问题,但在高版本(4.4以上)系统上只能显示文字,无法显示图片: 跪求大神帮助. 解决方案 webView.getSettings().setBlockNetworkImage(false); 解决方案二: show = (WebView) findViewById(R.id.show_info); WebSetti

在myeclipes中,jsp插入的音乐在tomcat服务器上通过IE浏览器不能播放

问题描述 在myeclipes中,jsp插入的音乐在tomcat服务器上通过IE浏览器不能播放 <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <html> <head> <title>班级信息管理</title> <style type="text/css">a:

HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面

原文 http://blog.csdn.net/ldl22847/article/details/6317306 详细错误:HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的"ISAPI 和 CGI 限制"列表设置,无法提供您请求的页面. 出现环境:win7 + IIS7.0 解决办法:IIS的根节点->右侧"ISAPI和CGI限制"->把禁止的DotNet版本项设置为允许,即可~  

解决iis7.5服务器上.net 获取不到https页面的信息_实用技巧

我的获取页面需要cookie,不需要的可以去掉: GET的方法: 复制代码 代码如下: /// <summary>        /// 获取URL访问的HTML内容 获取https 页面的        /// </summary>        /// <param name="Url">URL地址</param>        /// <returns>HTML内容</returns>        publ

asp.net使用不同的web服务器,同样的页面显示效果不同,这是怎么回事?

问题描述 我在用VS2005做ASP.NET的页面程序,在使用VS内部自带的web服务器调试时,菜单显示正常.但同样位置的文件和代码,配置到本机的IIS里时,显示风格就变了,菜单弹不出来了,这是怎么回事?有啥解决办法? 解决方案 解决方案二:补充一下,这个页面是分上下frame的,菜单部分是放在frametop里的,使用的是Menu组件.解决方案三:调试下,看看是不是哪个文件加载异常了(chrome或者火狐一类)解决方案四:首先,解决这个问题,你第一步需要做的,是分别比较一下VS服务器与IIS输

ASP.NET 2.0中的页面输出缓存

asp.net|缓存|页面 静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.这个过程中,缓存不需要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面.对于那些数据经常更新的页面,则不适用.默认情况下,ASP.NET 2.0启用了页面输出缓存功能,但并不缓存任何响应的输出.开发人员必须通过设置,使得某些页面的响应成为缓存的一部分. 设置页面输出

Windows IIS配置Jsp和php环境方法_win服务器

一.IIS用于ASP程序的处理,但是想要它可以处理JSP和php呢?最容易想到的就是JSP安装TOMCAT就好了,TOMCAT默认的端口是8080,默认安装好后的成功页面:http://127.0.0.1:8080/index.jsp;php用Apache就好了,配置好了就可以了.有集成了Mysql和MysqlAdmin的AppServ.Apache和IIS都是默认用80端口,那它们就有冲突,只能启动其中一个,也就是支持php就不支持asp了.对于jsp有人把它和IIS整合,也有人和Apache

ASP.NET利用webclient获取页面源代码的解决方

asp.net|client|web|解决|页面|源代码 页面中包括DataGrid时,利用webclient获取页面源代码的解决方    主要问题,利用webclent获取页面源代码时,当页面中含有datagrid,并且该控件使用了自带的分页功能时,正常的方法只能获取第一页面的数据,其它页面的数据取不到,以下是解决方法. 方法一: 主要思路是利用webclient,post数据到服务来取得数据,这里主要用了一个小工具可以分析页面的组成及运行过程,分析中发现当点击下一页时,会Post三个参数过去