Para hacer un gráfico dinámico con JSP yo hago lo siguiente:
Un archivo .html que es el primero que se ejecuta:
<html>
<body>
<h2>Generando un grafico dinamico<h2>
<form method="post" action="dinamico.jsp" name="">
<font face="Verdana,Helvetica" size="-1" color="#000099">
<p><b>X1:</b> <input type="text" name="x1">
<b> Y1:</b> <input type="text" name="y1"></p>
<p><b>X2:</b> <input type="text" name="x2">
<b>Y2:</b> <input type="text" name="y2"></p>
<input type="submit" name="submit" value="Aceptar">
<input type="reset" name="reset" value="Borrar">
</form>
</body>
</html>
y existe el programa en dinamico.jsp que tiene lo siguiente:
<%@ page contentType="image/jpeg"
import="java.awt.*,java.awt.image.*, com.sun.image.codec.jpeg.*,java.util.*"
%>
<%
//Trae los parámetros que digitó el usuario
String sbX1 = request.getParameter("x1");
String sbY1 = request.getParameter("y1");
String sbX2 = request.getParameter("x2");
String sbY2 = request.getParameter("y2");
//Convierte a enteros
int iX1 = Integer.parseInt(sbX1);
int iY1 = Integer.parseInt(sbY1);
int iX2 = Integer.parseInt(sbX2);
int iY2 = Integer.parseInt(sbY2);
// Debe crear un objeto BufferedImage (para poder ser codificado en JPEG)
BufferedImage imgPantalla = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
//El objeto grafico donde se pinta lo que usted quiera
Graphics graPantalla = imgPantalla.getGraphics();
// Color de fondo
graPantalla.setColor(Color.green);
graPantalla.fillRect(0, 0, 200, 200);
//Línea
graPantalla.setColor(Color.blue);
graPantalla.drawLine(iX1, iY1, iX2, iY2);
// Prepara el JSP para responder la petición del usuario
ServletOutputStream objSalida = response.getOutputStream();
// Crea un objeto para codificar en JPEG
JPEGImageEncoder objCodifica = JPEGCodec.createJPEGEncoder(objSalida);
//Codifica la imagen en JPEG
objCodifica.encode(imgPantalla);
%>
Me funciona muy bien tanto en FireFox, Opera e Internet Explorer, PERO tiene un gran problema: solo muestra la imagen .JPG, si quiero añadir etiquetas HTML para hacerlo mas presentable, simplemente no puedo. Necesito mostrar mas de un gráfico dinámico (enviándole parámetros del usuario para que cambie el gráfico) intercalado con parrafos de texto (hechos en HTML).
Agradezco de antemano sus sugerencias.