Tomcat:缓存控制

Jetty具有CacheControl参数(可以指定为webdefault.xml),该参数确定客户端的缓存行为(通过影响发送到客户端的标头)。

Tomcat是否有类似的选择?简而言之,我想关闭对雄猫服务器和/或特定Web应用程序交付的所有页面的缓存吗?

请注意,我指的不是服务器端缓存。我希望服务器告诉所有客户端(浏览器)不要使用自己的缓存,并始终从服务器获取内容。我想一次处理所有资源,包括静态资源(.css,.js等)。

回答:

与上面的帖子类似,但是该代码存在一些问题。这将禁用所有浏览器缓存:

import javax.servlet.*;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.Date;

public class CacheControlFilter implements Filter {

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

HttpServletResponse resp = (HttpServletResponse) response;

resp.setHeader("Expires", "Tue, 03 Jul 2001 06:00:00 GMT");

resp.setDateHeader("Last-Modified", new Date().getTime());

resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0");

resp.setHeader("Pragma", "no-cache");

chain.doFilter(request, response);

}

}

然后按照StuThompson的answer中的描述映射到web.xml中。

以上是 Tomcat:缓存控制 的全部内容, 来源链接: utcz.com/qa/415455.html

回到顶部