2011-03-17 12 views
0

URLから他のリソースにイメージをダウンロードするJavaアプレットを構築しています。私は、画像がキャッシュされていることを発見しました。そして、JavaのコントロールパネルのTemporary Internet Files/View .../Resourcesで画像を見ることができます。残念ながら、私は画像を更新して、アプレットの実行間にこれらの更新を表示する必要がありますが、キャッシュが問題を引き起こしている必要があります。Javaでのリソースのキャッシングをどのように制御しますか?

これらの種類のリソースのキャッシュを制御するものについての情報はありません。どのプロセスがリソースをキャッシュし、どのように制御するのですか?具体的には、画像の有効期限を設定するにはどうすればよいですか?

関連がある場合は、次のようなコードを使用してイメージをダウンロードしています(mtはMediaTrackerオブジェクトです)。

public BufferedImage getImageFromUrl(String url) 
{ 
    Image img = null; 
    try { 
     URL u = new URL(url); 
     img = java.awt.Toolkit.getDefaultToolkit().createImage(u); 
     mt.addImage(img, numImages++); 
     mt.waitForAll(); 
     ... 

ありがとうございました。

答えて

2

使用この:

con.addRequestProperty("Cache-Control", "no-cache, max-age=3600"); 
con.addRequestProperty("Expires", "Thu, 17 Mar 2011 01:34:00 GMT"); 

URL u = new URL(url); 
URLConnection con = u.openConnection(); 
con.setUseCaches(false); 
img = Toolkit.getDefaultToolkit().createImage(new URLImageSource(u, con)); 

あなたは特別のような行を追加することにより、Cache-ControlまたはExpiresヘッダーを設定することができます有効期限を制御したい場合

1

byteアレイに画像をダウンロードするには、URLConnectionを使用します。このbyte配列をcreateImage()に渡します。また、URLConnectionオブジェクトのsetUseCaches(false)を呼び出してキャッシングをオフにすることもできます。サーバーからのキャッシュされた画像を回避するために

関連する問題