日期:2014-05-19  浏览次数:20773 次

在J2EE项目中处理浏览器的缓存

本文参考:http://aumy2008.blogbus.com/logs/27584194.html

一、概述

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

??? 数据库本身有缓存,持久层 也可以缓存。(比如: 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", 0);
?

(二)、客户端方法:

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 :页面上的链接可以被查询;