In questo post vediamo come generare un semplice grafico usando la libreria JFreeChart ( http://www.jfree.org/jfreechart/ ).
Partiamo da una jsp e inseriamo i dati di vendita di 3 soggetti, quindi invochiamo una servlet che utilizzando JFreeChart crea l'oggetto grafico scrivendolo come immagine png e rinviandola al client.
La jsp è un semplice form con 3 textBox in cui inserire i dati:
La servlet è la seguente:
Il risultato finale, dopo aver inserito i seguenti dati sulla jsp:
Sarà il seguente:
Partiamo da una jsp e inseriamo i dati di vendita di 3 soggetti, quindi invochiamo una servlet che utilizzando JFreeChart crea l'oggetto grafico scrivendolo come immagine png e rinviandola al client.
La jsp è un semplice form con 3 textBox in cui inserire i dati:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="generateChart" method="post" action="Disegna">
<table>
<tr>
<td>Mario:</td><td><input type="text" id="txtMario" name="txtMario"/></td>
</tr>
<tr>
<td>Gino:</td><td><input type="text" id="txtGino" name="txtGino"/></td>
</tr>
<tr>
<td>Pino:</td><td><input type="text" id="txtPino" name="txtPino"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="btnInvio" value="Genera Grafico"/></td>
</tr>
</table>
</form>
</body>
</html>
La servlet è la seguente:
package it.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* Servlet implementation class FreeChartGenerator
*/
public class FreeChartGenerator extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FreeChartGenerator() {
super();
// TODO Auto-generated constructor stub
}
private JFreeChart getGrafico(double[] lista)
{
String[] series=new String[]{"Mario","Gino","Pino"};
DefaultCategoryDataset cds=new DefaultCategoryDataset();
for(int i=0;i<lista.length;i++){
cds.addValue(lista[i], "", series[i]);
}
JFreeChart hitsByFolderChart = ChartFactory.createBarChart( "Report
Vendite", "Venditore", "Euro", cds, PlotOrientation.HORIZONTAL, false,
false, false );
return hitsByFolderChart;
//
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
double d1=Double.valueOf(request.getParameter("txtMario"));
double d2=Double.valueOf(request.getParameter("txtGino"));
double d3=Double.valueOf(request.getParameter("txtPino"));
double[] ld=new double[3];
ld[0]=d1;
ld[1]=d2;
ld[2]=d3;
JFreeChart chart=getGrafico(ld);
response.setContentType("image/png");
ChartUtilities.writeChartAsJPEG(response.getOutputStream(), chart, 500, 300);
}
}
Sarà il seguente:
Nessun commento:
Posta un commento