servlet prácticos mundo hola ejemplos ejemplo con java servlets

java - prácticos - Salida de un archivo de imagen de un servlet



servlet java (3)

Aquí está el código de trabajo:

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { ServletContext cntx= req.getServletContext(); // Get the absolute path of the image String filename = cntx.getRealPath("Images/button.png"); // retrieve mimeType dynamically String mime = cntx.getMimeType(filename); if (mime == null) { resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } resp.setContentType(mime); File file = new File(filename); resp.setContentLength((int)file.length()); FileInputStream in = new FileInputStream(file); OutputStream out = resp.getOutputStream(); // Copy the contents of the file to the output stream byte[] buf = new byte[1024]; int count = 0; while ((count = in.read(buf)) >= 0) { out.write(buf, 0, count); } out.close(); in.close(); }

¿Cómo servir una imagen, almacenada en mi disco duro, en un servlet?
Por ejemplo:
Tengo una imagen almacenada en la ruta ''Images/button.png'' y quiero ''Images/button.png'' en un servlet con el file/button.png URL file/button.png .


Aquí hay otra manera muy simple.

File file = new File("imageman.png"); BufferedImage image = ImageIO.read(file); ImageIO.write(image, "PNG", resp.getOutputStream());


  • mapear un servlet al /file url-pattern de /file
  • leer el archivo desde el disco
  • escríbelo en response.getOutputStream()
  • establecer el encabezado Content-Type en image/png (si solo es pngs)