Java 从mysql检索图像并在JSP上显示

Java 从mysql检索图像并在JSP上显示,java,jsp,Java,Jsp,我有以下代码从mysql检索图像,并希望在JSP上显示它,但显示的是网页,而不是图像。 这个密码是什么 <tbody> <tr> <td> <%@ page import="java.io.*"%> <%@ page import="java.sql.*"%> <%@ page import

我有以下代码从mysql检索图像,并希望在JSP上显示它,但显示的是网页,而不是图像。 这个密码是什么

 <tbody>
            <tr>
                <td> <%@ page import="java.io.*"%>
                     <%@ page import="java.sql.*"%>
                     <%@ page import="java.util.*"%>
                     <%@ page import="java.text.*"%>
                     <%@ page import="javax.servlet.*"%>
                     <%@ page import="javax.servlet.http.*"%>
                     <%@ page import="javax.servlet.http.HttpSession"%>
                     <%@ page language="java"%>
                     <%@ page session="true"%>
                     <%@ page import="java.sql.*"%>
                     <% Blob image = null; Connection con = null; Statement stmt = null; ResultSet rs = null; String iurl1=null;
                         byte[] imgData = null ; String DBname = "Rest_Tucan"; String userName = "aaks1962"; String password = "1962";
                       try {
                           Class.forName("com.mysql.jdbc.Driver");
                           con =  DriverManager.getConnection("jdbc:mysql://localhost:3306/" 
                                + DBname + "?UseUnicode=true&charachterEncoding=UTF-8");
                           stmt = con.createStatement();
                           rs = stmt.executeQuery("select * from imagesTable where imagesTableCode = 1"); 
                           while(rs.next()){
                                image = rs.getBlob("imagesTableBig");
                           }
                           // display the image
                           imgData = image.getBytes(1,(int)image.length());
                           response.setContentType("image/jpg");
                           OutputStream o = response.getOutputStream();
                           o.write(imgData);
                           o.flush();
                           o.close();

                       }catch (SQLException e) {
                            e.printStackTrace(); 
                       };
                     %>

                </td>

基本上,你需要

requestScope
是一个内置的JSP变量,您可以使用它的名称来获取属性。
imageBytes
是Servlet代码中使用的属性名

对类似问题的回答可能有助于您了解细节


编辑:还有一件事,请尝试将
@page
JSP指令保持在JSP页面的顶部,以增加可读性。

我将尝试您的解决方案。是否可以按照您建议的方式修改部分代码并将其发布在此处?