Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Visualizzare immagini da DB MySQL con jsp

    Salve ragazzi,
    vi scrivo perché ho un problema e non riesco proprio a trovare una soluzione, mi spiego meglio.
    Sto creando un sito web usando Jsf/jsp collegate ad un db Mysql in cui sono memorizzate varie informazioni in una tabella, tra cui delle immagini sotto forma di dato MEDIUMBLOB.

    Ora, il mio problema è questo: da una pagina jsp mi connetto al db, effetto una query e tramite ciclo while sul ResultSet, prelevo tutte le immagini presenti nel db e le dovrei visualizzare in un'altra pagina jsp tramite il tag
    codice:
    <img src=<%= "percorsoFile.jsp" %> />
    Il problema però sta nel fatto che visualizzo solo la PRIMA immagine e le altre non vengono visualizzate.
    Quale potrebbe essere l'errore?
    Ho provato a fare una controprova (lo si può notare dal codice commentato nella porzione di codice postata; se effettuo la stessa query su un campo INT, la query va a buon fine, nel senso che visualizzo tutto l'elenco di campi int senza problemi.

    Quale potrebbe essere una soluzione? Idee?
    Questo è il codice del file che effettua la query su DB e dovrebbe prelevare le immagini:
    codice:
    <!-- per l'esecuzione corretta delle istruzioni SQL è necessario 
         importare il relativo package: java.sql.* 
    --> 
    <%@ page language="java" import="java.sql.*" %>
    <%
    Connection c = null;
    
    // carica il file di classe del driver 
    // per il collegamento al database con il ponte Odbc
    Class.forName("com.mysql.jdbc.Driver");
    
    // apre la connessione con il database "miodb"
    c = DriverManager.getConnection("jdbc:mysql://localhost:3306/nomeDB", "root", "pwd");
    
    // manda in esecuzione l'istruzione SQL
    Statement statement = c.createStatement();
    ResultSet rs = statement.executeQuery("SELECT * FROM articoli WHERE designer = 'ASPESI' ORDER BY id DESC;");
    
    // elabora i risultati ;
    while (rs.next()) 
    {
    	
      // ottiene il dato
      //int dat = rs.getInt("id");
      byte[] dat = rs.getBytes("fotoBytes1");
      
      // stampa a video
      //out.println(dat);
      
      response.getOutputStream().write(dat);
      
      
    }
    
    //chiude la connessione
    c.close();
    
    %>
    Questo invece è il file in cui dovrei visualizzare l'elenco di immagini prelevate dal file jsp precedente:
    codice:
    <%@ page contentType="text/html;charset=ISO-8859-1" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
    
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>	
    </head>
    
    
    <body>
    
    	<table>
    		<tr>
    			<td>
    				<img src=<%="percorsoFile.jsp" %> />
    			</td>
    			
    		</tr>
    	</table>
    	
    </body>
    </html>
    Vi prego aiutatemi, sono fermo qui e non riesco ad andare avanti!
    Vi ringrazio anticipatamente!

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    un solo tag img una sola immagine, mi sembra giusto
    è poi sconsigliato tenere le immagini o i file in generale nei BLOB, ma salvare ne db solo il percorso dei file e tenere i file in qualche cartella nel server

  3. #3
    Oltre al motivo detto da bstefano, cmq io fare una servlet che data la chiave della tabella ti recupera l'immagine e la scrive sull'outputStream

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.