我正在尝试使用 jQuery Scroller 将一些图像存储在 Java Web 应用程序中。
我用了UPLOAD_PATH
为每个图像设置上传文件夹:
UPLOAD_PATH = this.getClass().getResource("/uploads").toURI()
.getPath();
这些图片已成功保存并存储到此路径。
在客户端绑定(bind)期间,我得到的 JSON 值为:
[ { "id" : "57b08900505ab53e40a97355", "title" : "fdsafdasf", "description" : "sfdfasd", "rating" : 3, "price" : 21.0, "quantity" : 121, "type" : "Road Bike", "primaryimage" : "/uploads/1uSdodND_2016_08_14.jpg", "addedon" : "2016-08-14", "isactive" : true },
{ "id" : "57b0318991ed7332c8dd67a3", "title" : "fdsaf", "description" : "fdsafd safdsaf", "rating" : 4, "price" : 32232.0, "quantity" : 232, "type" : "Mountain Bike", "primaryimage" : "/uploads/rM1hHzek_2016_08_14.png", "addedon" : "2016-08-14", "isactive" : true } ]
我正在尝试使用简单的 HTML 页面将这些图像绑定(bind)到 <img>
中标记,但因为图像实际上存储在 WEB-INF\classes\uploads
中我无法直接将这些图像加载到页面中。有什么简单的方法可以加载那些 JSON primaryimage
HTML
中的字段页面并显示它们。
最佳答案
您可以编写一个简单的 Servlet 并将请求映射到它。示例代码如下:
小服务程序
package com.javavirtues.sample;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String fileName = req.getPathInfo();
InputStream resourceContent = getServletContext()
.getResourceAsStream("/WEB-INF/classes/uploads" + fileName);
if (resourceContent == null) {
resp.sendError(HttpServletResponse.SC_NOT_FOUND);
} else {
OutputStream outputStream = resp.getOutputStream();
byte[] buffer = new byte[1024];
for (int length = 0; (length = resourceContent.read(buffer)) > 0;) {
outputStream.write(buffer, 0, length);
}
}
}
}
web.xml 片段
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>com.javavirtues.sample.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<url-pattern>/uploads/*</url-pattern>
<servlet-name>ImageServlet</servlet-name>
</servlet-mapping>
关于java - 如何在文件位于 tomcat 服务器的 WEB-INF\classes\uploads 文件夹内的 HTML 页面中绑定(bind)图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38946000/