以下のフィルターを使用して、コア ドメイン (www.domain.com) のキャッシュを処理できます。
public class cacheControl implements Filter{
FilterConfig filterConfig;
public cacheControl() {
filterConfig = null;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
String sCache = filterConfig.getInitParameter("cache");
if (sCache != null) {
Date _currentDate = new Date();
((HttpServletResponse) response).setHeader("Cache-Control", sCache);
((HttpServletResponse) response).setHeader("Expires", new Date(_currentDate.getYear(), _currentDate.getMonth(), _currentDate.getDate() + 10).toString());
((HttpServletResponse) response).setHeader("X-Content-Type-Options", "nosniff");
((HttpServletResponse) response).setHeader("X-XSS-Protection", "1; mode=block");
((HttpServletResponse) response).setHeader("X-Frame-Options", "SAMEORIGIN");
((HttpServletResponse) response).setHeader("X-UA-Compatible", "IE=edge, chrome=1");
}
chain.doFilter(request, response);
}
@Override
public void destroy() {
filterConfig = null;
}
}
しかし、javascript、css、画像などの静的コンテンツを (static.domain.com) に配置し、その静的ドメインからのコンテンツに有効期限ヘッダーを設定したいと考えています。私はグーグルで検索しましたが、完璧な解決策はありません。静的ドメインの有効期限ヘッダーを設定するのを手伝ってください....