Un utente tramite un file upload da pagina html invia un'immagine dal suo file system ad una servlet. La servlet deve memorizzare l'immagine da qualche parte e poi deve poterla restituire al client.
Uso eclipse con apache tomcat 6.0 sotto window 7 ma non riesco a a fare funzionare le cose.
Esattamente appoggiandomi su una libreria esterna leggo l'immagine dell'utente e riesco a salvarla nel workspace di Eclipse (e' giusto salvarla qui?).
Ma poi non riesco a leggere l'immagine? Viene restituito il contenuto html della servlet di risposta senza visualizzare l'immagine.

Vi prego aiutatemi.
Page html:
codice:
<!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>Immagini</title>
<script type="text/javascript">
   function gestisciImmagine()
   {
	   var nome_immagine = document.upload.file_inviato.value;
	   if(!nome_immagine.match(/(\.jpg|\.jpeg|\.png)$/i))
	   {
		   alert("Non hai selezionato un'immagine o hai selezionato un'immagine in un formato non valido");
		   return;//naturalmente qui andrebbe gestito meglio, evitando la submit ma e' solo una prova
	   }
	   
	   
   }
</script>
</head>
<body>


Seleziona un file da memorizzare nel database:</p> 
<form name="upload" enctype="multipart/form-data" method="post" action="/ProvaServlet/CaricareImmagini"> 



<input type="file" name="file_inviato" onChange="gestisciImmagine();" value=""/>

<input type="submit" name="invia" value="Invia file"/>
</p> 
</form>
</body>
</html>
La servlet:
codice:
import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.oreilly.servlet.*;
//import com.oreilly.servlet.multipart.*;
/**
 * Servlet implementation class CaricareImmagini
 */
public class CaricareImmagini extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		 MultipartRequest multi = new MultipartRequest(request,".");
		 

		 File f = multi.getFile("file_inviato");
		 String fileName = multi.getFilesystemName("file_inviato"); //il contenuto di fileName lo posso salvare in un database

		 if (f!=null)
		 {
		File fOUT = new File("C:\\Users\\Nick\\workspace\\ProvaServlet\\WebContent\\Immagini\\",fileName);//1
			 //il path sopra effettivamente manda l'immagine nel workspace
		 FileInputStream fIS = new FileInputStream(f); //l'inputstream FIS legge dal file f
		 FileOutputStream fOS = new FileOutputStream(fOUT);//
		  while (fIS.available()>0)//l'inputstream fIS legge dal file f e l'outputstream FOS scrive sul file fOUT
		   fOS.write(fIS.read());
		 fIS.close();
		 fOS.close();
		}
		 
		 response.setContentType( "text/html" );
		 response.setHeader("Expires", System.currentTimeMillis()+"");
	      PrintWriter out = response.getWriter();  
	      
	      // send HTML page to client

	    
	      

	      
          out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
	      out.println( "<html>" );
	      
	      // head section of document
	      out.println( "<head>" );
	      out.println( "<title>A Simple Servlet Example</title>" );
	      out.println( "</head>" );
	      
	      // body section of document
	      out.println( "<body>" );
	      out.println( "<h1>Visualizzo l'immagine</h1>" );
	      String g="http://localhost:8080/ProvaServlet/Immagini/"+fileName;
	      String h="src="+"\""+g+"\"";
	      out.println( "<img "+h+"/>" );
	      out.println( "</body>" );
	      
	      
	      out.println( "</html>" );
	      out.close();  // close stream to complete the page*/
	}

}
La libreria esterna e' reperibile qui: http://www.servlets.com/resources/co...let/index.html