Sie sind auf Seite 1von 1

Tomemos por ejemplo una prueba con un tamao de 2000 bytes y luego con un tamao

algo mayor. En el primer caso ver aparecer la imagen en bandas sucesivas. En el


segundo caso la imagen aparecer de una sla vez.

Para llevar la experiencia al extremo, puede colocar la instruccin


response.flushBuffer(); al interior del bucle while. La imagen se ha transmitido entonces
byte a byte al navegador.

package es.eni.ri;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ResponseHttp extends HttpServlet


{

protected void processRequest(HttpServletRequest request,


HttpServletResponse response)
throws ServletException, IOException
{

ServletOutputStream out = null;

try {
response.setContentType("image/jpg");
//lnea que se modifica
response.setBufferSize(2000);
RandomAccessFile raf = new RandomAccessFile(new
File(getServletContext().getRealPath("/images/PICT0871.jpg")), "r" );
response.setContentLength( (int) raf.length() );
out = response.getOutputStream();
int b;
while ( (b=raf.read( )) !=-1 )
{
out.write( (byte)b );
}
// la lnea siguiente puede colocarse en
// el interior del bucle
response.flushBuffer();
}

@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}

@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{

www.fullengineeringbook.net

Das könnte Ihnen auch gefallen