Itt*_*tai 6 gwt tomcat caching http-headers
我有一个js缓存在5-10分钟之间的文件,具体取决于我是使用eclipse中的tomcat(通过GWT插件)还是以独立方式启动tomcat.
这很奇怪,因为我使用的GWT是我的框架,并且根本不应该缓存此文件(对于那些了解GWT的人来说,这是一个nocache.js文件).我已经阅读了一个GWT Google团队线程,它是一个容器配置问题,而在其他地方,我需要在包含的HTML文件中定义它.
基本上,我现在很困惑,因为我不知道如何让这个文件不缓存.请注意,此js是由生成的GWT,我无法修改它.
感谢任何帮助,Ittai

Chr*_*her 15
以便携方式(跨不同的应用服务器)执行此操作的一种方法是使用过滤器.在您的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>
Run Code Online (Sandbox Code Playgroud)
然后实现你的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);
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用<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>
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到MyHeadersFilter:
private FilterConfig filterConfig;
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
@Override
public void destroy() {
this.filterConfig = null;
}
Run Code Online (Sandbox Code Playgroud)
这使得可以使用以下方法访问您的init-param:
filterConfig.getInitParameter("myParam")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9009 次 |
| 最近记录: |