起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 219|回复: 6

【结贴】关于tomcat禁用客户端缓存的问题

[复制链接]
发表于 2010-6-27 17:18:59 | 显示全部楼层 |阅读模式
情况是,服务器端存有大量项目资料的html文件,在客户端浏览项目资料时首先访问一个jsp页面并传递要访问资料的文件名,然后在jsp中判断该文件是否存在,存在则利用response.sendredirect()指向该网页。
现在项目要求访问这些htm页面时不在客户端生成缓存,查了一下在IIS服务器中是专门可以设置自定义HTTP头,相当于每次http请求时都会把这些头加上,这样就能实现所有网页都禁止缓存。
不知道在tomcat中哪里能有设置的,或者说怎么样可以监听到http请求,然后对每次请求返回给客户端时都增加相应头的设置。
回复

使用道具 举报

 楼主| 发表于 2010-6-27 17:23:20 | 显示全部楼层
希望指点一下啊。。。!!!
在单个jsp页面中添加
res.setHeader("ragma", "no-cache");
res.setHeader("Cache-Control", "no-cache");
res.setdateHeader("Expires", 0);
这三句代码就能实现该jsp禁用缓存,但是jsp中response.sendredirect()定向过去的页面还是会有缓存,应该是重新请求了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-27 17:25:07 | 显示全部楼层
在网上查到如下,但是不知道怎么做
Client-side caching is to be done with appropriate response headers. To entirely disable client-side caching on the particular resources, you need to create a Filter which listens on the desired url-pattern and has at least the following lines inside the doFilter() method:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("ragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
The response is here by the way the HttpServletResponse which is been casted back from the 2nd ServletResponse argument of the doFilter() method.

求高手指导,对tomcat底层的东西不懂…………
回复 支持 反对

使用道具 举报

发表于 2010-6-28 09:30:28 | 显示全部楼层
这个跟平台没什么关系吧。。。。
3楼应该说的比较清楚了,只要在他说的范围内去做就可以了。
我们也没对这方面做过什么研究,请楼主网上找找是否有这方面的例子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-28 11:27:18 | 显示全部楼层
好吧,主要是这个项目是X3做的,只是有这个需求,不过跟平台本身确实没多大关系。
回复 支持 反对

使用道具 举报

发表于 2010-6-28 11:33:13 | 显示全部楼层
恩,那请楼主再研究一下吧。
目前对这方面确实了解的不多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-28 13:41:52 | 显示全部楼层
好的,谢谢
先结了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 06:18 , Processed in 0.041327 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表