j'ai trouvé une discussion dans ce froum j'essaye de faire la meme chose mais j'ai pas reussi pouvez vous m'aider
Je vous presente les codes:
* la classe BarChart:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package hist;
 
import java.awt.Color;
import java.awt.GradientPaint;
 
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
 
public class BarChart
{
    private static CategoryDataset createDataset()
    {
        String s = "First";
        String s1 = "Second";
        String s2 = "Third";
        String s3 = "Category 1";
        String s4 = "Category 2";
        String s5 = "Category 3";
        String s6 = "Category 4";
        String s7 = "Category 5";
        DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
        defaultcategorydataset.addValue(1.0D, s, s3);
        defaultcategorydataset.addValue(4D, s, s4);
        defaultcategorydataset.addValue(3D, s, s5);
        defaultcategorydataset.addValue(5D, s, s6);
        defaultcategorydataset.addValue(5D, s, s7);
        defaultcategorydataset.addValue(5D, s1, s3);
        defaultcategorydataset.addValue(7D, s1, s4);
        defaultcategorydataset.addValue(6D, s1, s5);
        defaultcategorydataset.addValue(8D, s1, s6);
        defaultcategorydataset.addValue(4D, s1, s7);
        defaultcategorydataset.addValue(4D, s2, s3);
        defaultcategorydataset.addValue(3D, s2, s4);
        defaultcategorydataset.addValue(2D, s2, s5);
        defaultcategorydataset.addValue(3D, s2, s6);
        defaultcategorydataset.addValue(6D, s2, s7);
        return defaultcategorydataset;
    }
    public static JFreeChart createChart()
    {
        CategoryDataset categorydataset = createDataset();
 
        JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, true, true, false);
        jfreechart.setBackgroundPaint(Color.white);
        CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
        categoryplot.setBackgroundPaint(Color.lightGray);
        categoryplot.setDomainGridlinePaint(Color.white);
        categoryplot.setDomainGridlinesVisible(true);
        categoryplot.setRangeGridlinePaint(Color.white);
        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer();
        barrenderer.setDrawBarOutline(false);
        GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, new Color(0, 0, 64));
        GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0));
        GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(64, 0, 0));
        barrenderer.setSeriesPaint(0, gradientpaint);
        barrenderer.setSeriesPaint(1, gradientpaint1);
        barrenderer.setSeriesPaint(2, gradientpaint2);
        CategoryAxis categoryaxis = categoryplot.getDomainAxis();
        categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(0.52359877559829882D));
        return jfreechart;
    }
}
* la classe Graphe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package hist;
 
import java.io.Serializable;
 
 
 
public class Graphe implements Serializable
{
	private String map ;
	private String src ;
	private String useMap ;
 
	public String getMap()
	{
		return map;
	}
	public void setMap(String map)
	{
		this.map = map;
	}
	public String getSrc()
	{
		return src;
	}
	public void setSrc(String src)
	{
		this.src = src;
	}
	public String getUseMap()
	{
		return useMap;
	}
	public void setUseMap(String useMap)
	{
		this.useMap = useMap;
	}
}
* La servlet BarChartServlet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package com.servlet.histo;
 
import java.io.IOException;
 
import hist.BarChart;
import hist.Graphe;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.servlet.ServletUtilities;
 
public class BarChartServlet extends HttpServlet
{
	public void service (HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
	{
	        JFreeChart jfreechart = BarChart.createChart() ;
 
                ChartRenderingInfo chartRenderingInfo = new ChartRenderingInfo(new StandardEntityCollection());
 
                int largeur = 900 ;
                int hauteur = 600 ;
 
		String filename = ServletUtilities.saveChartAsJPEG(jfreechart, largeur, hauteur, chartRenderingInfo, request.getSession());
 
		Graphe graphe = this.initImage(request, chartRenderingInfo, filename);
 
		request.setAttribute("graphe",graphe) ;
 
		RequestDispatcher disp=getServletContext().getRequestDispatcher("/graphe.jsp");
		disp.forward(request,response) ;
	}
	private Graphe initImage(HttpServletRequest request,ChartRenderingInfo chartRenderingInfo, String filename)
	{
		String map = ChartUtilities.getImageMap(filename, chartRenderingInfo);
		String src = request.getContextPath()+"/servlet/DisplayChart?filename=" + filename ;
		String useMap = "#" + filename  ;
 
		Graphe graphe = new Graphe() ;
		graphe.setMap(map);
		graphe.setSrc(src) ;
		graphe.setUseMap(useMap) ;
 
		return graphe ;
	}
}
et la jsp graphe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java"%>
<%@ page import="hist.Graphe" %>
 
<%
        Graphe graphe = (Graphe) request.getAttribute("graphe") ;
        String map = graphe.getMap() ;
        String src = graphe.getSrc() ;
        String useMap = graphe.getUseMap() ;
%>
 
<div align="center">
	<%=map%>
	</br>
	<img src=<%=src%> usemap=<%=useMap%> border="0">
</div>
le web xml que j'ai utilisé est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<web-app>
 
	<servlet>
		<servlet-name>BarChartServlet</servlet-name>
	        <servlet-class>com.servlet.histo.BarChartServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>BarChartServlet</servlet-name>
		<url-pattern>/servlet/BarChartServlet</url-pattern>
 
 
 
	</servlet-mapping>
	<servlet>
		<servlet-name>DisplayChart</servlet-name>
	        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>DisplayChart</servlet-name>
		<url-pattern>/servlet/DisplayChart</url-pattern>
	</servlet-mapping>
</web-app>
quand j'execute une servlet le message d'erreur suivant s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Etat HTTP 404 - /histo/servlet/BarChartServlet
 
--------------------------------------------------------------------------------
 
type Rapport d'état
 
message /histo/servlet/BarChartServlet
 
description La ressource demandée (/histo/servlet/BarChartServlet) n'est pas disponible.
 
 
--------------------------------------------------------------------------------
 
Apache Tomcat/6.0.20
Merci pour votre aide!