`

浏览器缓存JSP页面

    博客分类:
  • JSP
阅读更多

        项目开发中,通常IE会缓存页面,但是缓存历史页面在业务系统中往往页面缓存会给系统带来很多问题。为了不让浏览器缓存JSP页面,应避免浏览器缓存当前JSP页面。

     查阅资料,对浏览器缓存实现方式总结如下:

 

    一、服务端

    

<%   
response.setHeader("Pragma","No-cache");    
response.setHeader("Cache-Control","no-cache");    
response.setDateHeader("Expires", -10); 
%>

 

    二、客户端

     meta是用来在HTML文档中模拟HTTP协议的响应头报文。

     meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。

     meta 的属性有两种:name和http-equiv。

     name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个:

 

name属性
1、 <meta name="Generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等;
2、 <meta name="KEYWords" contect="">向搜索引擎说明你的网页的关键词;
3、 <meta name="DEscription" contect="">告诉搜索引擎你的站点的主要内容;
4、 <meta name="Author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者;
5、 <meta name="Robots" contect="all|none|index|noindex|follow|nofollow">

其中的属性说明如下:
设定为all:文件将被检索,且页面上的链接可以被查询;
设定为none:文件将不被检索,且页面上的链接不可以被查询;
设定为index:文件将被检索;
设定为follow:页面上的链接可以被查询;
设定为noindex:文件将不被检索,但页面上的链接可以被查询;
设定为nofollow:文件将不被检索,页面上的链接可以被查询。

 

http-equiv属性


1、<meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80">
和 <meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语言;又如英文是ISO-8859-1字符集,还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集;


2、<meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网页在指定的时间n内,跳转到页面http;//yourlink;


3、<meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式;


4、<meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出;


5、<meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式;


6、<meta http-equiv="Pics-label" contect="">网页等级评定,在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过meta属性来设置的;


7、<meta http-equiv="windows-Target" contect="_top">强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用;


8、<meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= 50)">和<meta http-equiv="Page-Exit" contect="revealTrans(duration=20,transtion =6)">设定进入和离开页面时的特殊效果,这个功能即FrontPage中的“格式/网页过渡”,不过所加的页面不能够是一个frame页面。

 

 

缓存的应用

 

     一、防止JSP页面缓存为了防止浏览器缓存当前访问的JSP动态页面,可以采用如下的方式进行设置:

<% 
      // 将过期日期设置为一个过去时间
    response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");

      // 设置 HTTP/1.1 no-cache 头
    response.setHeader("Cache-Control", "no-store,no-cache,must-revalidate");

      // 设置 IE 扩展 HTTP/1.1 no-cache headers, 用户自己添加
    response.addHeader("Cache-Control", "post-check=0, pre-check=0");

      // 设置标准 HTTP/1.0 no-cache header.
      response.setHeader("Pragma", "no-cache");
%>

 如果每一个页面都包含这些,代码会很繁琐,可以通过自定义过滤器(Filter)的方法来处理相关的页面。

二、jsp,html 清除页面缓存(也是我开始谈到的问题的解决方式)

1、禁止客户端缓存要在<head>中加入类似如下内容:

<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"> 

或者

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   

 

 

2、在服务器的动态网页中禁止缓存,要加入类似如下脚本

 

response.setHeader("Pragma","No-cache"); 
response.setHeader("Cache-Control","no-cache"); 
response.setDateHeader("Expires", 0);  

 

 

注意: jsp cache最好做在过滤器上,把需要缓冲的页面集中在同一个目录下,每次更改只须更改web.xml就可以完成缓冲设置,这样比较方便.

三、设置有限时间的缓存

    int minutes = 10;
  
    Date d = new Date();

    String modDate = d.toGMTString();

    String expDate = null;

    expDate = (new Date(d.getTime() + minutes*60000)).toGMTString();

    response.setHeader("Last-Modified", modDate);

    response.setHeader("Expires", expDate);

    response.setHeader("Cache-Control", "public"); //   HTTP/1.1

    response.setHeader("Pragma", "Pragma"); //   HTTP/1.0

 

 

 

分享到:
评论

相关推荐

    Web应用与开发作业

    (1)禁止浏览器缓存所有动态页面; (2)有3个http响应头字段可以禁止浏览器缓存当前页面,它们在Servlet中的示例代码如下。 response.setDateHeader("Expires",-1); response.setHeader("Cache-Control","no-cache...

    JSP页面缓存cache技术–浏览器缓存介绍及实现方法

    一、概述 缓存的思想可以应用在软件分层的各个层面。它是一种内部机制,对外界而言,是不可感知的。 数据库本身有缓存,持久层也可以缓存...二、缓存实现(浏览器缓存当前访问的JSP动态页面) (一)、服务端方法: 代

    图片上传成功jsp页面不刷新问题

    图片上传成功jsp页面不刷新,是因为浏览器缓存导致,需要在图片请求参数中添加随机参数

    JSP页面缓存cache技术--浏览器缓存介绍及实现方法

    缓存的思想可以应用在软件分层的各个层面。它是一种内部机制,对外界而言,是不可...另外Browser也有缓存(如IE)这个大家也都知道(实现在 web server 上的缓存机制)越上层的缓存效果越好,越底层的缓存影响越深远

    JSP清除页面缓存常用方法小结

    本文实例总结了JSP清除页面缓存常用方法。分享给大家供大家参考,具体如下: 一、清除页面缓存 在jsp页里 &lt;&#37;response.setHeader(Pragma,No-cache); response.setHeader(Cache-Control,no-cache); response....

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

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

    完美解决jsp页面在IE8下文本模式自动为(杂项Quirks)导致页面显示错位

    最近在修改网站的响应式的页面时,由于都是套样式页面,修改过程都是粘贴复制,导致了一些细节问题在IE8下暴露出来: 遇到的问题就是在在Chrome,火狐页面都正常,唯独在IE8下页面样式显示...以上这篇完美解决jsp页面在

    JSP实用技巧集合,jsp编程的一些小技巧总结

    75. 请求jsp页面禁止缓存方法? 76. select选中其中的值自动到一个文本框? 77. JSP连接数据库? 78. JSP两级下拉列表框联动(数据库)? 79. JSP字符编码问题及转换大全? 80. 使用过滤器设置请求编码? 81. JSP或Servlet...

    js返回一个历史页面

    js返回一个历史页面,非常好用,开发中经常用到

    JSP 开发之Servlet解决网页缓存问题

    JSP 开发之Servlet解决网页缓存问题 (1)我们为什么要防止游览器页面缓存的问题: 所以在不需要缓存的页面中需要实现不缓存页面; 代码如下: package com.lc.HttpTest; import java.io.IOException; import ...

    jsp编程技巧集锦

    请求jsp页面禁止缓存方法? 76. select选中其中的值自动到一个文本框? 77. JSP连接数据库? 78. JSP两级下拉列表框联动(数据库)? 79. JSP字符编码问题及转换大全? 80. 使用过滤器设置请求编码? ...

    在jsp修改CSS样式后没反应无效果的解决方法

    问题:在jsp修改CSS样式后看不到效果,clear过了,tomcat重启过了,浏览器缓存清除过了,还是没反应。 解决方法:双击tomcat服务器,选择Modules,点Add Web Module…,在弹出的窗口选择你的项目,在path输入/就好...

    JSP大文件上传控件-access-utf8

    支持浏览器:IE6,IE7,IE8,360安全浏览器,QQ浏览器,搜狐浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x 支持文件大小:2G~8EB(1EB=102PB,1PB=1024TB,1TB=1024GB) 支持文件类型:任意类型 版权所有 2009-2012 ...

    Explorer4JSP

    我开发的这个文件浏览工具只有一个简单的JSP页面($files.jsp),将该页面放置在需要浏览的目录下,然后访问该文件,将显示该文件所在目录下的所有文件以及所有子目录下的文件。 工具特点: 1.列表和缩略图两种浏览...

    jsp九大内置对象

     当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,...

    JspRun!社区论坛系统 v6.0 bulid 090424 GBK 安装版.rar

    1、优化了页面缓存类及页面缓存生成方式 2、优化减少过滤器中的sql查询语句 3、优化减少版块帖子列表sql查询语句 4、优化个人空间 5、优化验证问答 6、优化快速编辑帖子的提交方式和帖子附件下载次数 7、...

    JspRun!社区论坛系统 v6.0 bulid 090423 GBK 源码版.rar

    1、优化了页面缓存类及页面缓存生成方式 2、优化减少过滤器中的sql查询语句 3、优化减少版块帖子列表sql查询语句 4、优化个人空间 5、优化验证问答 6、优化快速编辑帖子的提交方式和帖子附件下载次数 7、...

    JSP Struts配置文件详解

    @nochache:true时,在相应结果中加入特定的头参数:Pragma ,Cache-Control,Expires防止页面被存储在可数浏览器的缓存中,默认为false --&gt; contentType="text/html;charset=UTF-8" locale="true" processorClass=...

    5个Servlet过滤器实例源码(JSP)

    Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限

    JspRun!社区论坛系统 v6.0.0 build 20110516 GBK 源码版.zip

    7、 修复了:编辑器在部分浏览器下 JspRun!代码模式和所见即所得模式无法切换的问题。 8、 修改了:编辑用户组时,用户组显示的顺序不正确的问题。 9、 修改了:论坛编辑主题帖时,标题为空的问题 10、修复了:...

Global site tag (gtag.js) - Google Analytics