`

JSP 页面缓存以及清除缓存

    博客分类:
  • jsp
 
阅读更多

JSP 页面缓存以及清除缓存

一、概述 

 

    缓存的思想可以应用在软件分层的各个层面。它是一种内部机制,对外界而言,是不可感知的。 

    数据库本身有缓存,持久层也可以缓存。(比如:hibernate,还分1级和2级缓存) 

    业务层也可以有缓存(但一般来说,这是一个过程域,不会设缓存)。 

    表现层/数据服务层(传统web的表现层)也可以设置缓存(jsp cache 就是这一层,实现在app 

 

server上的缓存机制) 

    另外Browser也有缓存(如IE)这个大家也都知道(实现在 web server 上的缓存机制)。越上层的

 

缓存效果越好,越底层的缓存影响越深远。 

 

二、缓存实现(浏览器缓存当前访问的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);  

 

(三)设置有限时间的缓存 

 

    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  

 

补充:关于.jsp cache的几条建议: 

1.jsp cache最好做在过滤器上,把需要缓冲的页面集中在同一个目录下,每次更改只须更改web.xml就可

以完成缓冲设置,这样比较方便. 

2.Gzip压缩可以将页面压缩得很小,平均压缩比为1/3,jsp cache的HashMap缓冲压缩后的页面,肯定比没

压缩前更节约内存消耗,并且效率更高.关于Gzip可以参考这个开源项

目:http://sourceforge.net/projects/pjl-comp-filter  

分享到:
评论

相关推荐

    jsp 缓存处理

    JSP 页面缓存以及清除缓存、.禁止客户端缓存、设置有限时间的缓存、缓存应用

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

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

    IE页面缓存问题jsp及servlet中的设置

    IE页面缓存问题,html,jsp及servlet中的设置

    js返回一个历史页面

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

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

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

    pentaho6.0控制台免登陆替换文件

    使用过程只需使用到Admin用户,将文件替换:biserver-ce\tomcat\webapps\pentaho\jsp\下的PUCLogin.jsp无需重启服务器,清除缓存刷新页面,直接访问pentaho

    IIS6缓冲区超过其配置限制

    指定处理JSP工作时的out处理网页出入内容 的模式。如果值为none,那么就不会有缓存,而所有的输出都是由servletresponse的printerwriter。 若是一个数值,表示缓存的大小,单位是kb,那么输出的缓存大小至少会大于...

    Java开发技术大全 电子版

    Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 ...

    ARCH4系统开发指南

    2.6.3 在jsp页面中翻译代码 18 2.7 如何使用取单号服务 18 2.7.1 配置文件 19 2.7.2 取单号使用方式 19 2.8 如何使用Hibernate操作Informix数据库 20 2.8.1 实现对LOB数据对象的支持 20 2.8.1.1 配置...

    JAVA上百实例源码以及开源项目

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    JAVA上百实例源码以及开源项目源代码

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    免费个人博客系统(兼多用户博客系统)

    18.删除局部缓存和一键清除全部缓存; 19.可设置邮件实时通知新订单和访客留言; 20.可设置管理员回复留言可同时邮件通知留言者; 21.可查看和删除无用上传文件,为将来数据备份节省时间和空间; 22.特色的tag标签...

    02408免费个人博客系统(兼多用户博客系统)v3.1.zip

    18.删除局部缓存和一键清除全部缓存; 19.可设置邮件实时通知新订单和访客留言; 20.可设置管理员回复留言可同时邮件通知留言者; 21.可查看和删除无用上传文件,为将来数据备份节省时间和空间; 22.特色的tag...

    魔方动力内容管理系统 v5.0.zip

    8.采用合理的缓存机制,加快页面访问速度,减少数据库连接。 9.采用主题皮肤模板,可以自定义皮肤模板。 10.可以动态设置水印效果,支持图片水印。 11.自定义网站搜索,支持文章、产品搜索。 12.自定义客服...

    魔方动力内容管理系统源码 MFRubikCubePowerContent.rar

    8、采用合理的缓存机制,加快页面访问速度,减少数据库连接。 9、采用主题皮肤模板,可以自定义皮肤模板。 10、可以动态设置水印效果,支持图片水印。 11、自定义网站搜索,支持文章、产品搜索。 12、...

    免费个人博客系统(兼多用户博客系统)-PHP

    18.删除局部缓存和一键清除全部缓存; 19.可设置邮件实时通知新订单和访客留言; 20.可设置管理员回复留言可同时邮件通知留言者; 21.可查看和删除无用上传文件,为将来数据备份节省时间和空间; 22.特色的tag标签...

    java面试题

    标记-清除收集器 43 63.2.2. 标记-压缩收集器 43 63.2.3. 复制收集器 44 63.2.4. 增量收集器 44 63.2.5. 分代收集器 44 63.2.6. 并发收集器 44 63.2.7. 并行收集器 44 63.3. Sun HotSpot 1.4.1 JVM堆大小的调整 ...

Global site tag (gtag.js) - Google Analytics