Está en la página 1de 1

existente sino que aade a la cabecera un valor adicional.

sta es sin lugar a dudas la


solucin que utiliza el servidor para agregar sus propias cabeceras a la respuesta HTTP.

No existe sin embargo un mtodo para eliminar una cabecera ya agregada a una
respuesta HTTP.

La manipulacin de cabeceras de respuesta tiene que realizarse de forma obligada antes


de la escritura de informacin en el cuerpo de la respuesta HTTP.

3. Construir el cuerpo de la respuesta


La escritura de datos en el cuerpo de la respuesta es muy sencilla de implementar
debido a que consiste en enviar los datos hacia un flujo de salida. Es exactamente el
mismo principio que el usado para la escritura en la consola Java. Hay que hacer
justamente una pequea distincin en funcin del tipo de los datos que se envan al
cliente.

Para escribir texto en el cuerpo de la respuesta HTTP se utiliza preferentemente un


objeto PrintWriter. Este objeto es accesible por el mtodo getWriter del objeto
HttpServletResponse.

Los datos binarios se aaden gracias a un objeto ServletOutputStream accesible


mediante el mtodo getOutputStream del objeto HttpServletRequest.

Nunca hay que usar simultneamente ambos objetos ya que en este caso se desencadena
una excepcin de tipo IllegalStateException.

El ejemplo de servlet mostrado a continuacin devuelve una imagen en formato JPEG al


cliente.

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");
RandomAccessFile raf = new RandomAccessFile(new
File(getServletContext().getRealPath("/images/titi.jpg")), "r" );
response.setContentLength( (int) raf.length() );

www.fullengineeringbook.net

También podría gustarte