Mysql
 sql >> Base de données >  >> RDS >> Mysql

Je veux afficher plusieurs images de la base de données dans jsp (je mappe le servlet) donc dans jsp je vais afficher dans src de la balise img

Supposons que vous ayez une page jsp où vous souhaitez récupérer l'image. Vous pouvez faire quelque chose comme ça pour récupérer n'importe quelle image de la base de données.

 <% // 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){}

    %>

Dans le code ci-dessus, ceci -> <img src="./Serv1?id=<%=resultSet.getString("id")%>" /> la ligne est importante, ici vous passez parameter c'est-à-dire :id au servlet pour obtenir une image particulière

Maintenant, dans votre servlet c'est-à-dire ./Serv1 vous devez récupérer l'id dans doGet et transmettre la requête, enfin renvoyer la réponse à la page 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();

         }

De plus, ce n'est pas un code complet, apportez des modifications selon vos besoins. N'oubliez pas non plus d'ajouter le fichier jar's file

J'espère que cela t'aides!