Necesito mostrar en una JSP un grafico utilizando JFreeChart, para ello hice inicialmente un servlet:
Código:
  
Entonce en el codigo de la jsp seria,<servlet-mapping><servlet-name>ServletGraficoBarraMultiple</servlet-name><url-pattern>/ServletGraficoBarraMultiple</url-pattern></servletmapping> <servlet><servlet-name>ServletGraficoBarraMultiple</servlet-name><servlet-class>bw_co_ServletGraficoBarraMultiple</servlet-class></servlet>
Código HTML:
 <script>[INDENT] function createXMLHttp(){ try{ xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch(oc){ xmlHttp = false; } } if (!xmlHttp && typeof XMLHttpRequest != "undefined"){ try{ xmlHttp = new XMLHttpRequest(); }catch (E){ xmlHttp=false; } } return xmlHttp; } function envioInfo (){ //Creamos el objeto xmlHttpRequest alert("Creamos el objeto xmlHttp"); createXMLHttp(); //Definimos la llamada para POST alert("Definimos la llamada para POST"); var info = document.forms['formularioDiv2'].graficoMens.src; //Marcar que función manejará la respuesta xmlHttp.open("POST","ServletGraficoBarraMultiple",true); alert("Marcamos la función que maneja la respuesta"); xmlHttp.onreadystatechange = recogeInfo; //Enviar alert("enviamos los datos"); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1'); xmlHttp.send(info); } function recogeInfo(){ alert(xmlHttp.readyState + " " + xmlHttp.status); if (xmlHttp.readyState == 4){ document.getElementById("div1").innerHTML=xmlHttp.responseText; //document.forms['formularioDiv2'].graficoMens.src=+xmlHttp.responseStream+"'"; alert(xmlHttp.responseText); } } [/INDENT]</script> <body onLoad="javascript:envioInfo();"> .... <div id="div1">[INDENT]<img src="ServletGraficoBarraMultiple?datos=.....">[/INDENT]</div> .... </body>
Código:
  
Comentaros que el método writeChartAsPNG pinta la imagen a través del OutputStream que se le pasa como parametro "out".
public class bw_co_ServletGraficoBarraMultiple extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res){
//recogemos los parametros de la request
//Creamos el graficoBarras
graficoBarras = ChartFactory.createBarChart3D(titulo, tituloX, tituloY, dataset, vertical, true, true, false);
try{
OutputStream out = res.getOutputStream();
ChartUtilities.writeChartAsPNG(out,graficoBarras,ancho,alto);
out.flush();
out.close();
}catch(Exception e){
e.printstacktrace();
}
}
{
 Lo que yo no se es como puedo hacer la función java script recogeInfo() para que me pinte lo que hago en la clase Java bw_co_ServletGraficoBarrasMultiple.
Gracias y un saludo.
 
