java Hi我需要帮助在我的JSP页面中传输图像
好的,我创建了一个音乐上传网站,上传OGG音乐。它也有一个音频标签合并。我还将相册艺术作为字符串放入数据库
现在,我想将该字符串(表示我的相册艺术)显示到我的JSP中:
@WebServlet(name = "LoadAlbumArt", urlPatterns = { "/LoadAlbumArt" })
public class LoadAlbumArt extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/jpg");
try {
OutputStream outputStream = response.getOutputStream();
DBConnector bConnector = new DBConnector();
PreparedStatement preparedStatement = bConnector
.Connect("SELECT * FROM devwebmp3.musicdatabase where musicno = ?");
preparedStatement.setInt(1,
Integer.parseInt(request.getParameter("musicno")));
ResultSet resultSet = preparedStatement.executeQuery();
Blob blob = null;
String imagestring = null;
while (resultSet.next()) {
imagestring = resultSet.getString("albumart");
}
//BufferedImage bi = ImageIO.read(ImageIO.createImageInputStream(new ByteArrayInputStream(Base64Coder.decode(imagestring.toCharArray()))));
//outputStream.write(blob.getBytes(1, (int) blob.length()));
byte[] hello = Base64Coder.decode(imagestring);
//ImageIO.write(bi, "jpg", outputStream);
//System.out.println("byte" + hello);
outputStream.write(hello);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
// ...
}
// ...
}
}
此外,这是java servlet页面:
src=<%="\"LoadAlbumArt?musicno="+request.getParameter("musicno") +"\""%>>
# 1 楼答案
首先,这个
processRequest(..)
方法在哪里您确定在该servlet的
doGet(..)
方法中包含了对processRequest(..)
的调用,如下所示:您是否通过请求检查已知记录的输出
您的Servlet是否正确响应JPEG图像?如果没有,那么应该检查Servlet代码
还可以将视图页面中的表达式更改为:
那些JSP脚本和表达式(
<% %>
和<%= %>
)现在已经是古董了,除非你有一些旧代码可以恢复,否则永远不要使用它们关于数据库表、BLOB字段,您没有给出足够的详细信息,甚至问题中有随机注释的代码,很难决定是否使用它们