요청한 리소스의 URL을 기반으로 HTTP 헤더를 추가하기 위해 Filter
을 작성했습니다. 여기에 단순화 된 버전입니다 :
CacheFilter.java
public class CacheFilter implements Filter {
private static long maxAge = 86400 * 30; // 30 days in seconds
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "max-age=" + maxAge);
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}
web.xml을
<filter>
<filter-name>cache</filter-name>
<filter-class>com.example.CacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cache</filter-name>
<url-pattern>*.png</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>cache</filter-name>
<url-pattern>*.jpg</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>cache</filter-name>
<url-pattern>*.gif</url-pattern>
</filter-mapping>
안녕, 권장되는 방법은 IHS에 정적 콘텐츠를 이동 (IBM의 HTTP 서버 - 단지 아파치 2 실제로) WAS doind로드 균형 및 장애 조치 (failover) 앞에 필요할 것입니다. 확인 : http://www-01.ibm.com/software/webservers/httpservers/ –
@MarcosMaia 이미 IHS를 사용하고 있지만 정적 컨텐츠를 추출/분배/동기화하여 웹 서버에서 제공하지 않기 때문에 어려움이 있습니다. 응용 프로그램 서버가 내 환경에서 두통의 가치가 없습니다. – user113215