unable to display all info from the database through jsp

前端 未结 1 1075
臣服心动
臣服心动 2021-01-24 23:12

My requirement is to insert artist details and his picture through jsp into oracle database and retrieve back information and picture through another jsp program.

artist

相关标签:
1条回答
  • 2021-01-24 23:53

    As of version 6, Java SE provides JAXB by which the bytes may be converted in to base64 string. Here also you may convert the image byte[] into base 64 string and it can be displayed using the <img html tag specifying the src data as base 64 i.e. src="data:image/png;base64,.

    Modify your code as follows :

    <%
                PreparedStatement ps=con.prepareStatement("select * from artist");
                ResultSet rs=ps.executeQuery();
                while(rs.next()){ %>
                <table><tr><th>artist fast name:</th><td><%=rs.getString(1) %></td></tr> 
                    <tr><th>artist middle name:</th><td><%=rs.getString(2) %></td></tr>
                    <tr><th>artist last name</th><td><%=rs.getString(3) %></td></tr>
                    <tr><th>artist job</th><td><%=rs.getString(4) %></td></tr>
                    <tr><th>artist image</th><td>
                    <%
                    Blob bl=rs.getBlob(5);
                    byte[] image=bl.getBytes(1, (int)bl.length());
                    %>
                    <img src="data:image/jpeg;base64, <%=javax.xml.bind.DatatypeConverter.printBase64Binary(image)%>
                " height="100" width="100" alt="bye"/> </td></tr>
                </table> 
                    <%
                    }
                    con.close();
              %>
    

    Here is another sample jsp page for getting a clear idea :

    <%@page import="java.awt.image.BufferedImage"%>
    <%@page import="javax.imageio.ImageIO"%>
    <%@page import="java.io.*"%>
    <%@ 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>
    <%
    BufferedImage bImage = ImageIO.read(new File("/home/visruth/Desktop/Visruth.jpg"));//give the path of an image
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ImageIO.write( bImage, "jpg", baos );
    baos.flush();
    byte[] imageInByteArray = baos.toByteArray();
    baos.close();
    String b64 = javax.xml.bind.DatatypeConverter.printBase64Binary(imageInByteArray);
    %>
    
    <div>
        <p>As of v6, Java SE provides JAXB</p>
        <img src="data:image/jpg;base64, <%=b64%>" alt="Visruth.jpg not found" />
    </div>          
    </body>
    </html>
    
    0 讨论(0)
提交回复
热议问题