在给定其相对URI的情况下测试资源是否存在

Bre*_*way 0 java uri

我写了一个小的Java servlet,它会动态生成一个图像按钮,给出包括标签,高度,宽度等参数,并将每个新的一个添加到缓存中.它工作正常,但它需要一个servlet调用每次调用显示按钮或其突出显示的版本.我转储缓存并制作了应用程序中当前使用的所有按钮的PNG文件,将这些文件添加到应用程序中,以便"/images/button/xyz.png"引用它们,其中文件名是哈希值输入参数.

这工作正常,但我希望在有人添加新按钮时调用我的原始servlet.我使用自定义标记来定义这些按钮,因此当JSP编译时会调用标记处理程序...所以我有一个点可以选择使用其中一个预生成的按钮,或者生成对servlet的引用所以它可以在显示时呈现按钮.

我的问题是:如何检测预渲染中的图像?我不确定调用基于完整路径创建URL对象然后调用getResource()是一个答案 - 我不希望它此时加载图像,我只需要知道它是否存在.

有没有办法创建一个File对象,它将采用相对URI并允许我测试是否存在?

Dav*_*low 5

我想你正在谈论的getResource()方法java.lang.Class.这实际上非常适合于问题,因为通过契约,null如果给定路径不存在资源,它将返回.在您使用getResourceAsStream()(或类似)之前,资源实际上并未加载,因此这不是性能问题.