2

<enable-file-serving value="true" />WebSphere Application Server v7.0の機能を使用して、Java Webアプリの静的コンテンツ(画像、CSS、JavaScript)を提供しています。

この静的コンテンツのHTTPヘッダーを変更するにはどうすればよいですか(たとえば、Cache-ControlまたはExpiresヘッダーを追加します)?

4

1 に答える 1

3

Filter要求されたリソースのURLに基​​づいてHTTPヘッダーを追加するためにを書くことになりました。簡略化したバージョンは次のとおりです。

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>
于 2013-03-12T15:54:01.403 に答える