【发布时间】:2009-07-07 10:21:13
【问题描述】:
早安,
我正在使用CacheFilter 过滤到我的服务器的某个路径(它将图像流输出到响应流)。我在 web.xml 中配置如下:
<filter>
<filter-name>imagesCache</filter-name>
<filter-class>com.samaxes.cachefilter.presentation.CacheFilter</filter-class>
<init-param>
<param-name>privacy</param-name>
<param-value>public</param-value>
</init-param>
<init-param>
<param-name>expirationTime</param-name>
<param-value>2592000</param-value>
</init-param>
</filter>
...
<filter-mapping>
<filter-name>imagesCache</filter-name>
<url-pattern>/my/path/*</url-pattern>
</filter-mapping>
使用我的 Firefox,如果我通过地址栏访问我的 url,它会第一次访问服务器,但在后续调用期间会使用缓存。但是,如果 url 在我的页面内(即 <img src="..."/> ),它似乎一直在访问服务器。
[编辑] 经过几次测试后,通过地址栏访问我的图像并不总是有效。但是缓存似乎确实比 .至于是不是真的,我不确定。
附加信息: 我的路径类似于 /my/path?then=some&query=strings。请注意,它没有扩展名(即 gif, png, jpeg ),但它的 mimetype 设置正确( image/gif, image/png, image/jpeg )。我不确定缺少扩展名或查询字符串的存在是否有任何影响。 (另外,另一个注意事项。虽然我的 url 有查询字符串,但我在测试中一遍又一遍地使用相同的 uri + 查询字符串)。
有什么想法吗?
谢谢
【问题讨论】:
标签: java servlet-filters cache-control ihtmlimgelement