30

JSP でヘッダーExpiresを追加するにはどうすればよいですか? Cache-Control画像、CSS、JavaScript ファイルなどの静的コンポーネントのインクルード ページに、遠い将来の有効期限を追加したいと考えています。

4

4 に答える 4

73

JSP ページのブラウザ キャッシュを無効にするFilterには、 にマップされる をurl-pattern作成し、メソッド*.jspで基本的に次のことを行います。doFilter()

HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0
httpResponse.setDateHeader("Expires", 0); // Proxies.

こうすれば、これをすべての JSP ページにコピーペーストしてスクリプトレットで乱雑にする必要がなくなります。

CSS や JS などの静的コンポーネントのブラウザー キャッシュを有効にするには、それらすべてを or のような共通フォルダーに配置し、/staticorにマップされる を/resources作成し、メソッドで基本的に次のことを行います。Filterurl-pattern/static/*/resources/*doFilter()

httpResponse.setDateHeader("Expires", System.currentTimeMillis() + 604800000L); // 1 week in future.

以下も参照してください。

于 2010-06-16T16:29:36.520 に答える
10
<%
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
%>
于 2010-06-16T16:29:14.713 に答える
2
<%
    response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1
    response.setHeader("Pragma", "no-cache"); //HTTP 1.0
    response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>
于 2014-04-30T04:32:18.167 に答える
1

Tomcat のようなサーブレット コンテナーには、一連の定義済みフィルターが付属しています。たとえば、Expires Filterを参照してください。独自の同様のフィルターを作成するよりも、既存のものを使用する方が簡単な場合があります。

于 2013-01-20T01:07:23.310 に答える