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:
* 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
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 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 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; } }
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
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 ; } }
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 <%@ 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>
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
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>
Merci pour votre aide!
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
Partager