Foros del Web » Programación para mayores de 30 ;) » Java »

JSP: combinar graficos dinámicos y HTML

Estas en el tema de JSP: combinar graficos dinámicos y HTML en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/01/2006, 20:05
 
Fecha de Ingreso: enero-2006
Mensajes: 2
Antigüedad: 18 años, 10 meses
Puntos: 0
JSP: combinar graficos dinámicos y HTML

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.
  #2 (permalink)  
Antiguo 16/01/2006, 22:24
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años
Puntos: 37
Y que ocurre si intercalas la salida del grafico (JPG) con etiquetas normales como:

<strong>TEXTO 1</strong>
<%
//Codifica la imagen en JPEG
objCodifica.encode(imgPantalla);%>

<strong>TEXTO2<strong>

Te tronaria la respuesta?? si fuera asi, entonces al parecer la respuesta enviada al navegador pudiera tratarse simplemente de solo grafico, respondiendo igual que si desde el navegador se solicitara un <img src="imagen.jpg">, en tal caso lo unico q se me ocurre es, o bien meter la respuesta exclusiva de ese JPG en un frame y al rededor en frames dibujar la presentacion.

Saludos
  #3 (permalink)  
Antiguo 17/01/2006, 17:39
 
Fecha de Ingreso: enero-2006
Mensajes: 2
Antigüedad: 18 años, 10 meses
Puntos: 0
NO funciona etiquetas HTML

Intenté colocar dentro del código de JSP algunas etiquetas HTML y simplemente son ignoradas, luego solo se muestra el dibujo generado y es por la directiva <%@ page contentType="image/jpeg" ....

La idea mia era tener un evaluador de expresiones (el usuario digita la ecuación, el valor X mínimo y X máximo en un formulario HTML), luego envío estos tres parámetros al JSP que muestra el gráfico matemático en una imagen .JPG . Lo que quería era que el usuario leyera algunos parrafos (escritos por supuesto en HTML) junto con el gráfico generado.

He intentado de otra forma y es usando envio de parametros de esta manera
<img src="dinamico.jsp?x1=12&amp;y1=24&amp;x2=125&amp;y 2=230&amp"/>, en otras palabras enviando por la URL los parámetros, pero me encontré el problema que enviar Strings por este método tiene problemas, por ejemplo al enviar un String como "2*x-5" lo recibe bien al otro lado, pero si el String es "2*x+5", el "+" se convierte en " " (un espacio) quedando "2*x 5" en el .jsp que lo recibe y así me da un resultado adverso.
  #4 (permalink)  
Antiguo 17/01/2006, 23:38
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años
Puntos: 37
si, en efecto, por que el signo "+" en una querystring significa precisamente un espacio en blanco, sin embargo debe haber un "encode" para enviar el signo + como "+" (como se hace por ejemplo con los acentos &acute, pero no se decirte exactamente cual le corresponderia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.