| free hosting image hosting hosting reseller online album e-shop famous people | ||
![]() ![]() |
||
| Docencia | Autor |
Java Server Pages: Combinando gráficos con HTML
Problema: Usted genera gráficos dinámicamente, pero ¿Cómo hace para que una página web combine gráficos con texto escrito en HTML?
Solución: Para llegar a esto...


En este ejemplo tenemos la página HTML con el formulario (evaluar.html) y dos archivos .JSP

evaluar.html

<html>
<body>
<h2>Generando un grafico dinamico<h2>
<form method="post" action="construye.jsp" name="">
<font face="Verdana,Helvetica" size="-1" color="#000099">
<p><b>Ecuacion:</b> <input type="text" name="ecuacion">
<input type="submit" name="submit" value="Aceptar">
<input type="reset" name="reset" value="Borrar">
</form>
</body>
</html>
construye.jsp
Usted llama a la página que crea la imagen utilizando la etiqueta <img src="graficar.jsp ....
Y si quiere pasarle parámetros, lo hace vía GET (parámetros por la línea de URL), pero debe usar el URLEncoder (en caso de pasar Strings por parámetro)

<html>
<body>
<%@ page import="java.awt.*" %>
<%@ page import="java.net.*"%>
<%
//Trae la ecuación que digitó el usuario
String sbEcuacion = request.getParameter("ecuacion");
if(sbEcuacion.length() == 0)
{
%>
<br>Falta llenar coordenadas<br>
<%}
else
{
String sbParametro = URLEncoder.encode(sbEcuacion);
System.out.println("["+sbEcuacion+"]");
System.out.println("["+sbParametro+"]");
%>
<br>Esta es una prueba</br>
<img src="graficar.jsp?ecuacion=<%=sbParametro%>"/>
<br>Termino</br>
<%
}
%>
</body>
</html>
graficar.jsp

<%@ page contentType="image/jpeg"
import="java.awt.*,java.awt.image.*, com.sun.image.codec.jpeg.*,java.util.*, EvalExpr2.*"
%>
<%
//Nuevo objeto evaluador de expresiones
EvalExpr2 objExpresion = new EvalExpr2();
//Trae la ecuación del usuario
String sbEcuacion = request.getParameter("ecuacion");
float fValor = objExpresion.fEvaluaEcuacion(sbEcuacion);
// Debe crear un objeto BufferedImage (para poder ser codificado en JPEG)
BufferedImage imgPantalla = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
//El objeto grafico donse se pinta lo que usted quiera
Graphics graPantalla = imgPantalla.getGraphics();
// Color de fondo
graPantalla.setColor(Color.black);
graPantalla.fillRect(0, 0, 200, 200);
//Dibuja la linea
graPantalla.setColor(Color.white);
for (int iValorX = -50; iValorX <= 50; iValorX++)
{
objExpresion.fVariable['x'-'a']=iValorX; //Valor de X
fValor = objExpresion.fRapidoEvalua();
graPantalla.drawLine(iValorX, (int)fValor, iValorX, (int)fValor);
}
// 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);
%>