Java 如何从mysql数据库中检索图像并在内部显示<;td>;及<;img>;HTML中的标记?

Java 如何从mysql数据库中检索图像并在内部显示<;td>;及<;img>;HTML中的标记?,java,html,jsp,servlets,Java,Html,Jsp,Servlets,如何从mysql数据库中检索图像,并在HTML标记中显示它,并且img标记应该放在其中?这是我的代码: 它只显示图像。它不显示除图像以外的任何内容 提前谢谢 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

如何从mysql数据库中检索图像,并在HTML标记中显示它,并且img标记应该放在其中?这是我的代码: 它只显示图像。它不显示除图像以外的任何内容

提前谢谢

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"      "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%@ 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"%>
<%
  try{
   //PrintWriter out=response.getWriter();

  out.println("Retrieve Image Example!");
  String driverName = "com.mysql.jdbc.Driver";
  String url = "jdbc:mysql://localhost:3306/";
  String dbName = "db";
  String userName = "root";
  String password = "root";
  Connection con = null;
  Class.forName(driverName);
  con = DriverManager.getConnection(url+dbName,userName,password);
  Statement st = con.createStatement();

 %>
  <table border='1'>
 <tr>
 <td>Name:</td><td>
 </td>My Name</td>
 </tr>
 <tr>
 <td>Image:</td>
 <td width=10px;>
 <%
 PreparedStatement pre1 = con.prepareStatement("select * from image where id="+8);
 ResultSet rs1=pre1.executeQuery();
 while(rs1.next())   
 {byte[] bytearray1 = new byte[4096];  
              int size1=0;  
             InputStream sImage1;  
               sImage1 = rs1.getBinaryStream(2);  
               response.reset();  
              response.setContentType("image/jpeg");  
              response.addHeader("Content-Disposition","filename=logo.jpg");  
              while((size1=sImage1.read(bytearray1))!= -1 )  
                {  
                  response.getOutputStream().write(bytearray1,0,size1);  
                }  
              response.flushBuffer(); 
              sImage1.close();  
              rs1.close();  
           }


    out.println("Retrieved Successfully!");
  pre.close();
  con.close();  
  }
  catch (Exception e){
  out.println(e.getMessage());
  }
%>
</td></tr>
 </table>
</body>
  </html>

在此处插入标题
姓名:
我的名字
图片:

图像作为单独的请求加载到加载html的请求。因此,您需要:

  • 建立在指定
    img
    元素的
    src
    时使用的URL编码方案
  • 将servlet(或类似的)映射到该URL。servlet根据在其响应中返回图像的URL参数加载图像

图像作为单独的请求加载到加载html的请求。因此,您需要:

  • 建立在指定
    img
    元素的
    src
    时使用的URL编码方案
  • 将servlet(或类似的)映射到该URL。servlet根据在其响应中返回图像的URL参数加载图像
    • 我发现了

      r.jsp:-

       <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
      pageEncoding="ISO-8859-1"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      
        <title>Insert title here</title>
        </head>
         <body>
        <table border=2>
        <tr><th>DISPLAYING IMAGE</th></tr>
        <tr><td>hi</td></tr>
        <tr><td>
       <img src="retrieve.jsp" width=130 height=130>
       </td></tr>
       </table>
      </body>
      </html>
      
                  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
                pageEncoding="ISO-8859-1"%>
                 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                                "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
           </head>
          <body>
           <%@ 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"%>
       <%
         try{
          //PrintWriter out=response.getWriter();
      
        out.println("Retrieve Image Example!");
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "db";
        String userName = "root";
           String password = "root";
             Connection con = null;
             Class.forName(driverName);
            con = DriverManager.getConnection(url+dbName,userName,password);
              Statement st = con.createStatement();
           PreparedStatement pre1 = con.prepareStatement("select * from image where id="+8);
       ResultSet rs1=pre1.executeQuery();
      while(rs1.next())   
       {byte[] bytearray1 = new byte[4096];  
                 int size1=0;  
                InputStream sImage1;  
                  sImage1 = rs1.getBinaryStream(2);  
                  response.reset();  
                 response.setContentType("image/jpeg");  
                 response.addHeader("Content-Disposition","filename=logo.jpg");  
                 while((size1=sImage1.read(bytearray1))!= -1 )  
                   {  
                     response.getOutputStream().write(bytearray1,0,size1);  
                   }  
                 response.flushBuffer(); 
                sImage1.close();  
                 rs1.close();  
              }
        pre.close();
        con.close();  
        }
       catch (Exception e){
               out.println(e.getMessage());
              }
      %>
        </body>
          </html>
      
      
      在此处插入标题
      显示图像
      你好
      
      retrieve.jsp:-

       <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
      pageEncoding="ISO-8859-1"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      
        <title>Insert title here</title>
        </head>
         <body>
        <table border=2>
        <tr><th>DISPLAYING IMAGE</th></tr>
        <tr><td>hi</td></tr>
        <tr><td>
       <img src="retrieve.jsp" width=130 height=130>
       </td></tr>
       </table>
      </body>
      </html>
      
                  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
                pageEncoding="ISO-8859-1"%>
                 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                                "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
           </head>
          <body>
           <%@ 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"%>
       <%
         try{
          //PrintWriter out=response.getWriter();
      
        out.println("Retrieve Image Example!");
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "db";
        String userName = "root";
           String password = "root";
             Connection con = null;
             Class.forName(driverName);
            con = DriverManager.getConnection(url+dbName,userName,password);
              Statement st = con.createStatement();
           PreparedStatement pre1 = con.prepareStatement("select * from image where id="+8);
       ResultSet rs1=pre1.executeQuery();
      while(rs1.next())   
       {byte[] bytearray1 = new byte[4096];  
                 int size1=0;  
                InputStream sImage1;  
                  sImage1 = rs1.getBinaryStream(2);  
                  response.reset();  
                 response.setContentType("image/jpeg");  
                 response.addHeader("Content-Disposition","filename=logo.jpg");  
                 while((size1=sImage1.read(bytearray1))!= -1 )  
                   {  
                     response.getOutputStream().write(bytearray1,0,size1);  
                   }  
                 response.flushBuffer(); 
                sImage1.close();  
                 rs1.close();  
              }
        pre.close();
        con.close();  
        }
       catch (Exception e){
               out.println(e.getMessage());
              }
      %>
        </body>
          </html>
      
      
      
      我发现了

      r.jsp:-

       <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
      pageEncoding="ISO-8859-1"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      
        <title>Insert title here</title>
        </head>
         <body>
        <table border=2>
        <tr><th>DISPLAYING IMAGE</th></tr>
        <tr><td>hi</td></tr>
        <tr><td>
       <img src="retrieve.jsp" width=130 height=130>
       </td></tr>
       </table>
      </body>
      </html>
      
                  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
                pageEncoding="ISO-8859-1"%>
                 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                                "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
           </head>
          <body>
           <%@ 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"%>
       <%
         try{
          //PrintWriter out=response.getWriter();
      
        out.println("Retrieve Image Example!");
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "db";
        String userName = "root";
           String password = "root";
             Connection con = null;
             Class.forName(driverName);
            con = DriverManager.getConnection(url+dbName,userName,password);
              Statement st = con.createStatement();
           PreparedStatement pre1 = con.prepareStatement("select * from image where id="+8);
       ResultSet rs1=pre1.executeQuery();
      while(rs1.next())   
       {byte[] bytearray1 = new byte[4096];  
                 int size1=0;  
                InputStream sImage1;  
                  sImage1 = rs1.getBinaryStream(2);  
                  response.reset();  
                 response.setContentType("image/jpeg");  
                 response.addHeader("Content-Disposition","filename=logo.jpg");  
                 while((size1=sImage1.read(bytearray1))!= -1 )  
                   {  
                     response.getOutputStream().write(bytearray1,0,size1);  
                   }  
                 response.flushBuffer(); 
                sImage1.close();  
                 rs1.close();  
              }
        pre.close();
        con.close();  
        }
       catch (Exception e){
               out.println(e.getMessage());
              }
      %>
        </body>
          </html>
      
      
      在此处插入标题
      显示图像
      你好
      
      retrieve.jsp:-

       <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
      pageEncoding="ISO-8859-1"%>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
       <head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      
        <title>Insert title here</title>
        </head>
         <body>
        <table border=2>
        <tr><th>DISPLAYING IMAGE</th></tr>
        <tr><td>hi</td></tr>
        <tr><td>
       <img src="retrieve.jsp" width=130 height=130>
       </td></tr>
       </table>
      </body>
      </html>
      
                  <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
                pageEncoding="ISO-8859-1"%>
                 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                                "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
           </head>
          <body>
           <%@ 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"%>
       <%
         try{
          //PrintWriter out=response.getWriter();
      
        out.println("Retrieve Image Example!");
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "db";
        String userName = "root";
           String password = "root";
             Connection con = null;
             Class.forName(driverName);
            con = DriverManager.getConnection(url+dbName,userName,password);
              Statement st = con.createStatement();
           PreparedStatement pre1 = con.prepareStatement("select * from image where id="+8);
       ResultSet rs1=pre1.executeQuery();
      while(rs1.next())   
       {byte[] bytearray1 = new byte[4096];  
                 int size1=0;  
                InputStream sImage1;  
                  sImage1 = rs1.getBinaryStream(2);  
                  response.reset();  
                 response.setContentType("image/jpeg");  
                 response.addHeader("Content-Disposition","filename=logo.jpg");  
                 while((size1=sImage1.read(bytearray1))!= -1 )  
                   {  
                     response.getOutputStream().write(bytearray1,0,size1);  
                   }  
                 response.flushBuffer(); 
                sImage1.close();  
                 rs1.close();  
              }
        pre.close();
        con.close();  
        }
       catch (Exception e){
               out.println(e.getMessage());
              }
      %>
        </body>
          </html>
      
      
      
      这不是同一个问题吗?是的,但我没有在那里发布代码。这不是同一个问题吗?是的,但我没有在那里发布代码。