如何在Java中控制资源的缓存?

如何在Java中控制资源的缓存?,java,image,caching,resources,applet,Java,Image,Caching,Resources,Applet,我正在构建一个Java小程序,其中包括从URL下载图像和其他资源。我发现图像正在被缓存,可以在Java控制面板中的临时Internet文件/view…/资源。不幸的是,我需要能够更新图像,并使这些更新在小程序执行之间出现,但缓存导致了问题 我找不到关于是什么控制这些资源的缓存的任何信息。缓存资源的过程是什么?我如何控制它?特别是如何设置图像的过期时间,或者甚至是特定图像的过期时间 如果相关的话,我将使用如下代码下载图像:(mt是MediaTracker对象) 感谢您的帮助。使用URLConnec

我正在构建一个Java小程序,其中包括从URL下载图像和其他资源。我发现图像正在被缓存,可以在Java控制面板中的临时Internet文件/view…/资源。不幸的是,我需要能够更新图像,并使这些更新在小程序执行之间出现,但缓存导致了问题

我找不到关于是什么控制这些资源的缓存的任何信息。缓存资源的过程是什么?我如何控制它?特别是如何设置图像的过期时间,或者甚至是特定图像的过期时间

如果相关的话,我将使用如下代码下载图像:(mt是MediaTracker对象)


感谢您的帮助。

使用
URLConnection
将图像下载到
字节
数组中。将此
字节
数组传递给
createImage()
。您可能还想通过调用
URLConnection
对象上的
setUseCaches(false)
来关闭缓存。

使用
URLConnection
将图像下载到
字节
数组中。将此
字节
数组传递给
createImage()
。您可能还想通过调用
URLConnection
对象上的
setUseCaches(false)
来关闭缓存。

使用此选项可以避免从服务器缓存图像:

URL u = new URL(url);
URLConnection con = u.openConnection();
con.setUseCaches(false);
img = Toolkit.getDefaultToolkit().createImage(new URLImageSource(u, con));
如果要控制过期时间,可以通过添加以下行专门设置
缓存控制
过期
标题:

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));
如果要控制过期时间,可以通过添加以下行专门设置
缓存控制
过期
标题:

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