Cache-Controlの設定
【サンプルコード】
public class ResponseCreator { public ResponseCreator(final String urlString) throws Exception { final URI uri = new URI(urlString); final Response.ResponseBuilder builder = Response.seeOther(uri); // キャッシュの設定 final CacheControl cacheControl = new CacheControl(); cacheControl.setNoCache(true); cacheControl.setMustRevalidate(true); cacheControl.setNoStore(true); builder.cacheControl(cacheControl); response = builder.build(); } }
キャッシュコントロールの設定を行うためには
javax.ws.rs.core.CacheControlクラスを使用します。
CacheControlオブジェクトにプロパティを設定し、
javax.ws.rs.core.Response.ResponseBuilder#cacheControlメソッドの
パラメータとして設定します。
設定後、buildメソッドでResponseオブジェクトを作成すると
HTTPレスポンスのヘッダに追記されます。
サンプルコードで返却されるChache-Controlは↓のようになります。
| Name | Value |
|---|---|
| Cache-Control | no-cache, no-store, no-transform, must-revalidate |
【設定メソッドの概要】
各設定メソッドと設定される内容は↓のようになります。
| メソッド名 | Cache-Controlにセットされるプロパティ | デフォルトの設定有無 |
|---|---|---|
| setMaxAge | max-age | なし |
| setMustRevalidate | must-revalidate | なし |
| setNoCache | no-chache | なし |
| setNoStore | no-store | なし |
| setNoTransform | no-transform | あり |
| setPrivate | private | なし |
| setProxyRevalidate | proxy-revalidate | なし |
| setSMaxAge | s-maxage | なし |