这是我的代码:
1.Java代码:
public static void getImg(Long itemId) {
try {
Item item = Item.findById(itemId);
if (item.img != null && item.img.getFile() != null{
response.setContentTypeIfNotSet(item.img.type());
renderBinary(item.img.get());
}
} catch (Exception e) {
Logger.error("Can't find image,itemId = " + itemId);
}
}
html : < img src="@{{ Items.getImage(123)}}"/>
2
html : < img src="/public/images/123.jpg"/>
我正在使用playframework,文档中的示例通过第一个版本显示图像。它们之间有什么不同(深入机制),特别是在响应性能方面?
答案 0 :(得分:1)
在第一个版本中,由于您从某些业务逻辑(和/或数据库)获得实际文件名,因此您可以轻松地重命名/替换id为“123”的图像,而无需更改表示层。
如果id'123'的图像位于受保护的文件夹(HTTP基本身份验证或类似文件)中,您的业务逻辑可以确保通过应用程序范围的安全机制授予访问权限。
您还可以根据其他请求/会话参数和逻辑提供所需版本的路径,对图像进行版本控制。
在第二种情况下,可以执行上述方案,但开发时间和可能的配置成本更高。