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