Mysql
 sql >> Database >  >> RDS >> Mysql

Voglio visualizzare più immagini dal database in jsp (sto mappando il servlet), quindi in jsp verranno visualizzate in src del tag img

Supponiamo di avere una pagina jsp in cui vuoi recuperare l'immagine. Puoi fare qualcosa del genere per recuperare qualsiasi immagine dal database.

 <% // dbconnection
          try {
                   Class.forName("com.mysql.jdbc.Driver");
                 java.sql.Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");
                  Statement statement = conn.createStatement() ;
       resultSet=statement.executeQuery("select * from product") ; 
                %> 
    <!--this loop will get all images-->
       <% while(resultSet.next()){ %> 
    <!--I'm using id column of table,you can use any coulmn which is unique to all row-->
   Image - <img src="./Serv1?id=<%=resultSet.getString("id")%>" width="20%"/>
  < p>Product <%=r.getInt(1)%>: <%=r.getString(2)%></p>

    <% 
    }
    }catch(Exception e){}

    %>

Nel codice sopra questo -> <img src="./Serv1?id=<%=resultSet.getString("id")%>" /> la riga è importante, qui stai passando parameter cioè:id a servlet per ottenere una particolare image

Ora, nel tuo servlet cioè ./Serv1 devi recuperare l'id in doGet e passa in query, infine rimanda la risposta alla pagina jsp.

Blob image = null;
        byte[] imgData = null;
       String id= request.getParameter("id");//here you are getting id 
       int i;
       ResultSet rs =null;

 try {

            //loading drivers for mysql
           Class.forName("com.mysql.jdbc.Driver");
             Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");


         String sql = "SELECT prodimg FROM product where id=?"; //here pass that id in query to get particular image 

           PreparedStatement ps = con.prepareStatement(sql);


               ps.setString(1, id);
              rs = ps.executeQuery();    
 while (rs.next()) {
                  image = rs.getBlob("image");//getting image from database 
                  imgData = image.getBytes(1,(int)image.length()); //extra info about image
                } 

response.setContentType("image/gif");//setting response type



OutputStream o = response.getOutputStream();

o.write(imgData);//sending the image to jsp page 
o.flush();
o.close();


 }
    catch(Exception e)
         {
             e.printStackTrace();

         }

Inoltre questo non è un codice completo, apporta le modifiche secondo le tue esigenze. Inoltre non dimenticare di aggiungere jar's file

Spero che sia di aiuto!