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中。