我有一个js文件,它被缓存了5-10分钟,这取决于我是在eclipse中使用tomcat (通过GWT插件)还是作为独立的tomcat启动。
这很奇怪,因为我使用GWT作为框架,而这个文件根本不应该被缓存(对于那些了解GWT的人来说,它是一个nocache.js文件)。我在GWT Google group thread上读到它是一个容器配置问题,而在其他地方,它是我需要在包含的HTML文件中定义的东西。
基本上,我现在很困惑,因为我不知道如何让这个文件不缓存。请注意,此js是由GWT生成的,我无法对其进行修改。
谢谢你的帮助,伊泰


发布于 2010-08-22 18:43:51
使用javax.servlet.Filter
以一种可移植的方式(跨不同的应用服务器)实现这一点的一种方法是使用过滤器。在您的web.xml中添加以下内容:
<filter>
<filter-name>headersFilter</filter-name>
<filter-class>MyHeadersFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>headersFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>然后像这样实现你的MyHeadersFilter:
public class MyHeadersFilter implements Filter {
@Override
public void doFilter(final ServletRequest request,
final ServletResponse response, final FilterChain chain)
throws IOException, ServletException {
final HttpServletRequest httpRequest = (HttpServletRequest) request;
final String requestUri = httpRequest.getRequestURI();
final HttpServletResponse httpResponse = (HttpServletResponse) response;
if (requestUri.contains(".nocache.")) {
httpResponse.addHeader("Cache-Control", "no-cache");
...
} else if (...) {
...
}
chain.doFilter(request, response);
}
}可选:可配置筛选器
您还可以通过使用<init-param>s从web.xml配置筛选器:
<filter>
<filter-name>headersFilter</filter-name>
<filter-class>MyHeadersFilter</filter-class>
<init-param>
<param-name>myParam</param-name>
<param-value>myValue</param-value>
</init-param>
</filter>将以下内容添加到MyHeadersFilter:
private FilterConfig filterConfig;
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
@Override
public void destroy() {
this.filterConfig = null;
}这使得使用以下命令访问init-param成为可能:
filterConfig.getInitParameter("myParam")发布于 2015-01-07 22:39:28
tomcat 7中有一个可用的过滤器
<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
<init-param>
<param-name>ExpiresByType image</param-name>
<param-value>access plus 10 days</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ExpiresFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>您可以在此处找到更多详细信息
https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/filters/ExpiresFilter.html
https://stackoverflow.com/questions/3540786
复制相似问题