Usted no puede rendimiento tanto en la misma respuesta, ya que eres devolver diferentes tipos (una página HTML del tipo text/html
y una imagen del tipo image/jpeg
, por ejemplo).
Para este tipo de cosas, generaré la imagen durante la solicitud de servlet inicial (para la página HTML que contiene). Lo almaceno en un caché en mi servlet, y escribo la página HTML con la etiqueta de imagen que contiene una URL a esa imagen con el asa.
p. Ej. el navegador pide http://whatever/page
El servlet genera la imagen, y escribe una etiqueta HTML en la página como
<img src="http://whatever/image/unique_handle_to_image">
El navegador hará que la página HTML, y como parte de esa cuestión una nueva solicitud a mi servlet con el mango de la imagen.
p. Ej. el navegador ahora solicita http://whatever/image/unique_handle_to_image
Devuelvo la imagen como tipo de contenido image/jpeg
o similar.
Tienes dos solicitudes en curso. Uno para la página, en el que renderiza la imagen y la almacena temporalmente, y la segunda en la que devuelve la imagen. Debes recordar borrar la memoria caché de la imagen, pero eso es muy sencillo. No me preocuparía almacenar muchas imágenes, ya que las dos solicitudes del navegador generalmente (!) Vienen en rápida sucesión.
supongo que es posible utilizar un data uri proporcionan su navegador lo soporta, y crear algo así como
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IAAAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1JREFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jqch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />
en cuenta que hay una serie de advertencias que rodean estos. Ver la página enlazada.
¿Qué código tendría yo en la página JSP que mostrará la imagen Algo – ChronoXIII
como –