我们使用spring和hibernate开发了一个小型Web应用程序。我们的应用程序具有提升图像和视频的功能,我们将图像和视频以longblob格式存储在数据库中。
我们正尝试使用现有的基于互联网的基于javascript的“简单控件库”http://www.dynamicdrive.com/dynamicindex4/simplegallery.htm以幻灯片形式显示这些图像。
我试图调用一个html页面,控制器会将其重定向到jsp页面,如下所示:
var Imagearray1 = [
<c:set var="count" value="0"/>
<c:set var="comma" value=","/>
<c:forEach items="${imageList}" var="image" varStatus="loop">
<c:set var="count" value="${count + 1}"/>
[$.get('imagedisplay.html');,'http://','${image.imageTitle}','${image.imageDescription}']<c:if test="${fn:length(imageList) != count}"> <c:out value="${comma}"/> </c:if>
</c:forEach>
];
其中imageList是数据库中的图像列表。您可以在我提到的链接中看到Imagearray1的实际代码。
如何使用此图库显示图像?(或)如果有任何其他方式以幻灯片形式显示图像,请向我解释。
答案 0 :(得分:0)
您需要创建一个servlet,它将图像内容从DB流式传输到HTTP响应,并沿着一组正确的响应头。非敏感的$.get('imagedisplay.html');
ajax调用必须由返回图像的servlet的URL替换,例如
var images = [
<c:forEach items="${images}" var="image" varStatus="loop">
['imageservlet/${image.id}', '', '${image.imageTitle}', '${image.imageDescription}']${!loop.last ? ',' : ''}
</c:forEach>
];
将您的图片servlet映射到/imageservlet/*
的网址格式,并按request.getPathInfo()
获取图片ID(或文件名),最后从数据库中选择InputStream
并将其写入{ {1}}回复。您可以在此答案中找到一个基本示例:How to retrieve and display images from a database in a JSP page?。