如何使用JavaServlet加载更小更快的图像?

如何使用JavaServlet加载更小更快的图像?,java,image,servlets,Java,Image,Servlets,我正在使用谷歌的GWT开发一个web应用程序。目前,我将图像上载到web服务器,并使用java servlet保存图像: for (FileItem item : sessionFiles) { String fileName = item.getName(); File file = new File("imagePath"); item.write(file); } 之后,我只需要提供图像的网址显示在浏览器上 不幸的是,对于我的问题,这是一个糟糕的解决方案,因为

我正在使用谷歌的GWT开发一个web应用程序。目前,我将图像上载到web服务器,并使用java servlet保存图像:

for (FileItem item : sessionFiles) {
    String fileName = item.getName();

    File file = new File("imagePath");

    item.write(file);
}
之后,我只需要提供图像的网址显示在浏览器上

不幸的是,对于我的问题,这是一个糟糕的解决方案,因为这个特定的web应用程序每页加载几个预览图像(产品目录)


在显示预览图像时(如您在Google上搜索图像时看到的),有没有办法将保存图像的较小版本加载到客户端?

这应该在服务器端完成

例如,您可以使用选项
?size=preview
请求图像,该选项将指示servlet检索具有指定id或名称的图像,并在返回到客户端之前将其调整为预览大小

更新:


正如Jeroen所建议的,我完全同意,保存文件的两个版本——预览版和完整版——是一个不错的选择,特别是如果你经常显示图像的话。另一个好处是,浏览器将能够缓存预览和完整图像。

您可以为预览图像提供不同的URL。哪里有问题?@Andrei是的,我知道,但我只想有一个图像,在加载到客户端之前(在预览的情况下)压缩/收缩,并且只有在用户要求时才加载完整图像。@belyid那么这与GWT无关。如果你从等式(和问题)中删除GWT并更新你的标签,你将有更好的机会得到一个好答案;也许可以先添加(或删除)@Thomas谢谢你,Thomas。我更新了标签。这比保存不同大小的同一图像的多个版本并根据需要上载一个小版本或普通版本更好吗?我个人会保存一个小版本用于预览,并在服务器上保存图像的完整分辨率版本。上载时可以自动调整大小一次(请参阅Java 2D库了解此内容),但每次加载图像时调整大小都会对服务器性能产生影响。@jeroen_de_schutter:我完全同意,我更新了我的答案以反映您的评论。