浏览器缓存对jsp,servlet来说都有时候是很致命的。以前用AJAX实现一个进度条,每隔1秒向服务器询问一次进度,服务器返回当前的百分比,就一个数字。开始的时候没有禁止缓存,结果进度条老是不动。我在自己的电脑上测试还没发现这个问题,因为我在internet选项了选择了“每次访问此页时检查”,而默认选项是“自动”,其实就是允许缓存。禁止缓存可以在HTML中写,也可以在http header里面写,但对于非HTML页面,就只有后面那种选择了,在servlet里可以这样写:
response.setHeader("Pragma","No-Cache");
response.setHeader("Cache-Control","No-Cache");
response.setDateHeader("Expires",0);
必须三个都写上才能应付各种浏览器。似乎大小写敏感(不确定,但上面这种肯定适用于IE 5,6)。还有Expires那个值有人说是-1。