比如,我想缓存所有的gif图片,但是jpg的不缓存,web.xml中配置如下:
<filter>
<filter-name>CacheControlFilter</filter-name>
<filter-class>javawebparts.filter. CacheControlFilter</filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*/header1.gif, *.jpg</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-name>CacheControlFilter</filter-name>
<filter-class>javawebparts.filter. CacheControlFilter</filter-class>
<init-param>
<param-name>pathSpec</param-name>
<param-value>include</param-value>
</init-param>
<init-param>
<param-name>pathList</param-name>
<param-value>*/header1.gif, *.jpg</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
它的后台实现机制很简单,内部部分代码如下:
((HttpServletResponse)response).setHeader("Pragma", "No-cache");
((HttpServletResponse)response).setHeader("Cache-Control",
"no-cache,no-store,max-age=0");
((HttpServletResponse)response).setDateHeader("Expires", 1);
((HttpServletResponse)response).setHeader("Cache-Control",
"no-cache,no-store,max-age=0");
((HttpServletResponse)response).setDateHeader("Expires", 1);