IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

[JFreeChart] afficher un graphe dans une page jsp


Sujet :

2D Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut [JFreeChart] afficher un graphe dans une page jsp
    Bonjour à tous,

    je suis débutant en jsp et servlet.

    je travaille sur un projet qui permet tracer des graphes à partir des données stockés sur une base de donnée. je dois afficher dans le graphe , dans l'axe des X la date stocké dans la BDD, la date est de format : "2009-03-23 11:05:20" et dans l'axe des Y les valeurs correspondantes pour chaque date.

    si quelqu'un a un exemple de ce projet, merci de me le communiquer, car il y 1 mois que je galére sur le sujet.
    Pour l'instant ce que j'ai réussi à faire, c'est créer une classe en java qui permet tracer un graphe , mais le soucis que j'ai rencontré , c'est que j'arrive pas à afficher les dates dans l'axe des X .

    Voici le code de ma classe Java :
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    package test;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartFrame;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.data.xy.XYDataset;
    import org.jfree.data.xy.XYSeries;
    import org.jfree.data.xy.XYSeriesCollection;
     
     
    public class LineChartTest{
     
    public static void main(String arg[]) throws NumberFormatException, SQLException, ClassNotFoundException{
     
     
    	String url = "jdbc:mysql://localhost:3306/test";
    	String username = "root";
    	String password = null ;
    	Class.forName("com.mysql.jdbc.Driver");
    	Connection con = DriverManager.getConnection(url,username,password);
    	Statement stmt = con.createStatement();
     
     
     
    		try{
        		Class.forName("com.mysql.jdbc.Driver");
        	}
        	catch (ClassNotFoundException e){
        		System.out.println("Pilote non retrouvé");
        	}
        	try{
        		con= DriverManager.getConnection(url,username,password);
        	}
        	catch(SQLException sqle){System.out.println("Erreur lors de la connexion à la base de données");
     
        	//destroy();
        	}
     
     
     
      XYSeries series = new XYSeries("Valeurs");
     
            try {
     
    	       con= DriverManager.getConnection(url,username,password);
    	       stmt = con.createStatement();
    	    }
    	    catch (SQLException sqle){System.out.println("Erreur de requete");}	
     
    	    ResultSet rs = (ResultSet) stmt.executeQuery("select * from CPUtest");	
     
    	    while(rs.next()){
     
    	    	double v1=rs.getDouble("datex");
    	    	double v2=rs.getDouble("sample");
    	    	series.add(v1,v2);
    	    }
    	    rs.close();
     
    	        /*
    	        series.add(rs.getString("datex"),rs1.getString("value1"));
    		    series.add(20.0, 20.0);
    	        series.add(40.0, 25.0);
    	        series.add(55.0, 50.0);
    	        series.add(70.0, 65.0);
    	        */
     
      XYDataset xyDataset = new XYSeriesCollection(series);
      JFreeChart chart = ChartFactory.createXYLineChart
              ("Moniteur CPU", "value1", "value2",
      xyDataset, PlotOrientation.VERTICAL, true, true, false);
      ChartFrame frame1=new ChartFrame("Moniteur CPU",chart);
      frame1.setVisible(true);
      frame1.setSize(700,400);
      }
    }
    l'erreur qui m'affiche :

    Exception in thread "main" java.sql.SQLException: Bad format for number '2009-03-23 10:16:33' in column 1.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
    at com.mysql.jdbc.ResultSet.getDoubleInternal(ResultSet.java:2467)
    at com.mysql.jdbc.ResultSet.getDoubleInternal(ResultSet.java:2406)
    at com.mysql.jdbc.ResultSet.getDouble(ResultSet.java:2367)
    at com.mysql.jdbc.ResultSet.getDouble(ResultSet.java:2385)
    at test.LineChartTest.main(LineChartTest.java:61)
    le code marche bien pour autre champ que "Datex" (champ dans ma base de donnée qui correspond qu champ Date),(double v1=rs.getDouble("datex").



    et aprés je compte transformer cette classe en servlet pour que je puisse la exploité dans une page jsp.

    Merci de votre aide.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Je suis loin d'être spécialiste en jdbc mais si ton champ est de type java.sql.Date, ne devrais-tu pas plutôt utiliser un rs.getDate("datex") ?

    Sinon, si tu veux afficher des dates sur l'axe des abscisses, tu devrais plutôt utiliser un TimeSeriesChart.

    Et pour afficher le graphe dans une jsp, tu peux t'inspirer du code donné dans cette discussion.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Merci bcp pour ta réponse mais j'ai essayé de mettre rs.getDate("datex") et ça ne marche pas , il me demande de changer le type de rs.getDate("datex") en Double et au moment de : series.add(v1,v2), il prend pas le v1.

    t'aurais pas un exemple stp de coment utiliser un TimeSeriesChart.

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Voici un exemple extrait du jar de demo de JFreeChart :
    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
    import java.awt.Dimension;
    import javax.swing.JPanel;
    import org.jfree.chart.*;
    import org.jfree.data.time.*;
    import org.jfree.data.xy.XYDataset;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
     
    public class TimeSeriesDemo10 extends ApplicationFrame
    {
     
        public TimeSeriesDemo10(String s)
        {
            super(s);
            XYDataset xydataset = createDataset();
            JFreeChart jfreechart = createChart(xydataset);
            ChartPanel chartpanel = new ChartPanel(jfreechart);
            chartpanel.setPreferredSize(new Dimension(500, 270));
            setContentPane(chartpanel);
        }
     
        private static JFreeChart createChart(XYDataset xydataset)
        {
            JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("Time Series Demo 10", "Time", "Value", xydataset, true, true, false);
            return jfreechart;
        }
     
        private static XYDataset createDataset()
        {
            TimeSeries timeseries = new TimeSeries("Per Minute Data", org.jfree.data.time.Minute.class);
            Hour hour = new Hour();
            timeseries.add(new Minute(1, hour), 10.199999999999999D);
            timeseries.add(new Minute(3, hour), 17.300000000000001D);
            timeseries.add(new Minute(9, hour), 14.6D);
            timeseries.add(new Minute(11, hour), 11.9D);
            timeseries.add(new Minute(15, hour), 13.5D);
            timeseries.add(new Minute(19, hour), 10.9D);
            TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeseries);
            return timeseriescollection;
        }
     
        public static JPanel createDemoPanel()
        {
            JFreeChart jfreechart = createChart(createDataset());
            return new ChartPanel(jfreechart);
        }
     
        public static void main(String args[])
        {
            TimeSeriesDemo10 timeseriesdemo10 = new TimeSeriesDemo10("Time Series Demo 10");
            timeseriesdemo10.pack();
            RefineryUtilities.centerFrameOnScreen(timeseriesdemo10);
            timeseriesdemo10.setVisible(true);
        }
    }
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Merci bcp , sauf que moi je voudrais à la place de " new Minute(1, hour)" , afficher le champ de date de Ma Base de donnée.

    Merci infiniment de m'aider.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    voilà ce que j'ai testé et ça ne marche pas :

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    package date;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Date;
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    //import org.jfree.data.time.Hour;
    import org.jfree.data.time.Minute;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
     
    /**
     * A demo showing a time series with per minute data.
     *
     */
    public class MinuteTest extends ApplicationFrame {
     
        /**
             * 
             */
     
     
    	private static final long serialVersionUID = 1L;
     
    	/**
         * A demonstration application.
         *
         * @param title  the frame title.
             * @throws SQLException 
         */
        public MinuteTest(final String title) throws SQLException {
     
        	super(title);
        	String url = "jdbc:mysql://localhost:3306/test";
        	String username = "root";
        	String password = null ;
     
        	try{
            		Class.forName("com.mysql.jdbc.Driver");
            	}
            	catch (ClassNotFoundException e){
            		System.out.println("Pilote non retrouvé");
            	}
     
            	Statement stmt = null;
    			try {
     
         	       Connection con = DriverManager.getConnection(url,username,password);
         	       stmt = con.createStatement();
         	    }
         	    catch (SQLException sqle){System.out.println("Erreur de requete");}	
     
         	    //ResultSet rs = (ResultSet) stmt.executeQuery("select * from CPU");	
     
     
     
     
     
     
            final TimeSeries series = new TimeSeries("Per Minute Data", Minute.class);
     
            try {
     
     	       Connection con = DriverManager.getConnection(url,username,password);
     	       stmt = con.createStatement();
     	    }
     	    catch (SQLException sqle){System.out.println("Erreur de requete");}	
     
     	    ResultSet rs = (ResultSet) stmt.executeQuery("select * from cpu");
     
     	   //final Hour hour = new Hour();
     
     	   while(rs.next()){
     
    	    Date v1=rs.getDate("datex");
    	    double v2=rs.getDouble("value1");
     
    	    series.add(new Minute(v1), v2);
    	  //series.add(new Minute(3, hour), 17.3);
          //series.add(new Minute(9, hour), 14.6);
          //series.add(new Minute(11, hour), 11.9);
          //series.add(new Minute(15, hour), 13.5);
          //series.add(new Minute(19, hour), 10.9);
     
    	    }
    	    rs.close();
            final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
     
            final JFreeChart chart = ChartFactory.createTimeSeriesChart(
                "Time Series Demo 10",
                "Time", 
                "Value",
                dataset,
                true,
                true,
                false
            );
            final ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new java.awt.Dimension(600, 300));
            setContentPane(chartPanel);
     
        }
     
     
        public static void main(final String[] args) throws SQLException {
     
            final MinuteTest demo = new MinuteTest("Time Series Demo 10");
            demo.pack();
            RefineryUtilities.centerFrameOnScreen(demo);
            demo.setVisible(true);
     
        }
     
    }
    l'erreur qui s'affiche :
    Exception in thread "main" org.jfree.data.general.SeriesException: You are attempting to add an observation for the time period Thu Jan 01 00:00:00 CET 1970 but the series already contains an observation for that time period. Duplicates are not permitted. Try using the addOrUpdate() method.
    at org.jfree.data.time.TimeSeries.add(TimeSeries.java:528)
    at org.jfree.data.time.TimeSeries.add(TimeSeries.java:573)
    at org.jfree.data.time.TimeSeries.add(TimeSeries.java:558)
    at date.MinuteTest.<init>(MinuteTest.java:127)
    at date.MinuteTest.main(MinuteTest.java:172)
    merci de m'aider svp

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Si tu veux afficher des jours sur l'axe des abscisses, il faut utiliser la classe Day à la place de la classe Minute.
    Modératrice Java - Struts, Servlets/JSP, ...

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    je veux afficher la date sous forme par exemple 12:00:23 , t as un exemple ??
    Merci d'avance.

  9. #9
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans ce cas, utilise la classe Hour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	    series.add(new Hour(v1), v2);
    Modératrice Java - Struts, Servlets/JSP, ...

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Merci bcp pour ta réponse , en fait , j'ai utilisé plutot la méthode addOrUpdate( new Minute(v1), v2) proposé par java lors de l'erreur affiché par Eclipse quant je mettai le méthode : add( new Minute(v1), v2). jusqu'à maintenant il affiche le graphe mais par contre, le graphe et vide , on dirait qu'il récupére pas les données stocké ds ma table :

    l'axe des Y : champ value1 de ma table CPUdatex
    l'axe des X : champ datex de ma table CPUdatex

    ----------------------------------------------
    voici la derniére version de mon code :
    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    package date;
     
     
    import java.awt.Color;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.Marker;
    import org.jfree.chart.plot.ValueMarker;
    import org.jfree.chart.plot.XYPlot;
    import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
    import org.jfree.chart.renderer.xy.XYItemRenderer;
    //import org.jfree.data.time.Hour;
    //import org.jfree.data.time.Minute;
    import org.jfree.data.time.Minute;
    //import org.jfree.data.time.RegularTimePeriod;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
     
    /**
     * An example of a time series chart using hourly data and including a null value.  The plot
     * has an image set for the background, and a blue range marker is added to the plot.
     *
     */
    public class TimeSeriesDemoTest extends ApplicationFrame {
     
        /**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	/**
         * A demonstration application showing a quarterly time series containing a null value.
         *
         * @param title  the frame title.
             * @throws SQLException 
         */
        public TimeSeriesDemoTest(final String title) throws SQLException {
     
        	super(title);
        	String url = "jdbc:mysql://localhost:3306/test";
        	String username = "root";
        	String password = null ;
        	try{
            		Class.forName("com.mysql.jdbc.Driver");
            	}
            	catch (ClassNotFoundException e){
            		System.out.println("Pilote non retrouvé");
            	}
     
            	Statement stmt = null;
    			try {
     
         	       Connection con = DriverManager.getConnection(url,username,password);
         	       stmt = con.createStatement();
         	    }
         	    catch (SQLException sqle){System.out.println("Erreur de requete");}	
     
         	    ResultSet rs = (ResultSet) stmt.executeQuery("select datex,value1 from CPUdatex");	
     
     
     
     
     
            final TimeSeries series = new TimeSeries("Minute", Minute.class);
     
            while(rs.next()){
     
               	Date v1 = rs.getDate("datex");
     	    	double v2=rs.getDouble("value1");
     
            	//series.add(new Hour(1, today), 500.2);
            	// series.add(new Minute(v1), v2);
     	    	series.addOrUpdate( new Minute(v1), v2);
     	    }
     	    rs.close();
     
     
            final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
     
            // create a title with Unicode characters (currency symbols in this case)...
            final String chartTitle = "CPUdatex";
            final JFreeChart chart = ChartFactory.createTimeSeriesChart(
                chartTitle,
                "Time", 
                "Value",
                dataset,
                true,
                true,
                false
            );
     
            final XYPlot plot = chart.getXYPlot();
      //      plot.setInsets(new Insets(0, 0, 0, 20));
            final Marker marker = new ValueMarker(700.0);
            marker.setPaint(Color.blue);
            marker.setAlpha(0.8f);
            plot.addRangeMarker(marker);
            plot.setBackgroundPaint(null);
            plot.setBackgroundImage(JFreeChart.INFO.getLogo());
            final XYItemRenderer renderer = plot.getRenderer();
            if (renderer instanceof StandardXYItemRenderer) {
                final StandardXYItemRenderer r = (StandardXYItemRenderer) renderer;
                //r.setPlotShapes(true);
                r.setShapesFilled(true);
            }
            final ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new java.awt.Dimension(700, 400));
            chartPanel.setMouseZoomable(true, false);
            setContentPane(chartPanel);
     
        }
     
        // ****************************************************************************
        // * JFREECHART DEVELOPER GUIDE                                               *
        // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
        // * to purchase from Object Refinery Limited:                                *
        // *                                                                          *
        // * <a href="http://www.object-refinery.com/jfreechart/guide.html" target="_blank">http://www.object-refinery.com/jfreechart/guide.html</a>                     *
        // *                                                                          *
        // * Sales are used to provide funding for the JFreeChart project - please    * 
        // * support us so that we can continue developing free software.             *
        // ****************************************************************************
     
        /**
         * Starting point for the demonstration application.
         *
         * @param args  ignored.
         * @throws SQLException 
         */
        public static void main(final String[] args) throws SQLException {
     
            final TimeSeriesDemoTest demo = new TimeSeriesDemoTest("Time Series Demo 4");
            demo.pack();
            RefineryUtilities.centerFrameOnScreen(demo);
            demo.setVisible(true);
     
        }
     
    }
    Merci pour ton aide c_nvy , je serai reconnaissant
    Images attachées Images attachées  

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Je ne comprends pas bien.
    Tu dis vouloir afficher des heures sur l'axe des abscisses. Alors, pourquoi continuer à utiliser la classe Minute ?
    Les données que tu souhaites afficher sont-elles d'une même journée ou de plusieurs ?

    Sinon, avant d'aller plus loin, il faut t'assurer que l'accès à la base de données fonctionne bien.
    Modératrice Java - Struts, Servlets/JSP, ...

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    En fait j'ai un champ dans la base de donné de type : 2009-03-23 11:05:20 de plusieurs journées et un champ de valeur correspondant à ces dates, et je voudrais afficher dans une page web le graphe coorespondant en fonction des données choisis( d'une base de donnée) via un formulaire. Aprés On choisi aussi dans le formulaire, si on veut afficher par Minute ou par Heure ou Par Jour ou ...

    Pour le Probléme d'affichage du graphe, j'ai réussi à le résoudre, j'ai utilisé la fonction : series.addOrUpdate( new Minute(v1), v2); et j'ai changé le type de v1 par Timestamp et ça m'affiche dans mon graphe le résultat.
    Voilà ou j'en suis .

    Comment je pourrais faire via un formulaire (choisir une date et un champ de valeur) et tracer un graphe en fonction de ça. est ce c'est possible qu'une classe java récupére les informations d'un formulaire et trace un graphe en fonction ces infos ??

    Merci beaucoup d'avance.

  13. #13
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faut écrire une servlet qui récupére les valeurs saisies dans le formulaire et ensuite créer le TimeSeries à partir de ces valeurs.
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Ok, c'est ce je comptaits faire, je vais essayer et je te tiendrai au courant.

    Merci d'avance

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Salut, voilà comme prévu , j'ai fait ce que tu m as dis, j'ai crée un formulaire dans une page jsp et je selectionne les données et aprés je clique sur valider pour avoir le graphe, mais j'ai un souci , j'ai une erreur :

    INFO: Le rechargement de ce contexte a démarré
    17 juin 2009 10:43:51 org.apache.catalina.loader.WebappClassLoader validateJarFile
    INFO: validateJarFile(C:\eclipse\projet\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\Graph\WEB-INF\lib\servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
    log4j:WARN Please initialize the log4j system properly.
    mon formulaire : graph.jsp

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@page language="java" import="java.sql.*"%>
    <%
    String url = "jdbc:mysql://localhost:3306/test";
    String username = "root";
    String password = null ;
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection(url,username,password);
    Statement stmt = con.createStatement();
    %>
     
    <html> 
    <head> 
    <title>SiteScope +</title> 
    <script type='text/javascript'>
     
     
                function changer(){ 
                    document.formulaire.groupe.value=document.formulaire.g.value;    
                }
                function changerMonitor(){ 
                    document.formulaire.monitor.value=document.formulaire.m.value;
                }
                function choixDateDebut(){ 
                    document.formulaire.dated.value=document.formulaire.date1.value;
                }
                function choixDateFin(){ 
                    document.formulaire.datef.value=document.formulaire.date2.value;
                }
    </script>
     
     
     
    </head> 
    <body bgcolor> 
    <center><H1>SiteScope +</h1>
     
    <form name="formulaire" method="post" action="http://localhost:8016/Graph/ServletGraph_v1">
     
    <TABLE BORDER=0 bgcolor>
     
    <TR>
        <TD align ="center">Group Name : </TD>
        <TD>
        <SELECT name="g" onChange ="changer();">
            <OPTION VALUE="choix group" size="50">-- Choose group --</OPTION>
            <% ResultSet rs = (ResultSet) stmt.executeQuery("select groupName from Ping group by groupName");%>
            <% while (rs.next()) {%>
     
             <option value = <%=rs.getString("groupName") %> ><%=rs.getString("groupName") %></option>
        <%
        }
        %>
        <%
        rs.close();
        %>
     
        </SELECT>
        </TD>
    </TR>
    <TR>
     
        <TD align ="center">valeur</TD>
        <TD>
        <input type="text" name="groupe" size="50">
        </TD>
     
    </TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    <TR>
        <TD align ="center">Monitor Name : </TD>
        <TD>
        <SELECT name="m" id="m" class ="champ" onChange ="changerMonitor()">
            <OPTION VALUE="choix monitor" size="50">-- Choose monitor --</OPTION>
            <% ResultSet rs1 = (ResultSet) stmt.executeQuery("select monitorName from Ping group by monitorName");%>
            <% while (rs1.next()) {%>
     
             <option value = <%=rs1.getString("monitorName") %> ><%=rs1.getString("monitorName") %></option>
        <%
        }
        %>
        <%
        rs1.close();
        %>
     
        </SELECT>
        </TD>
    </TR>    
    <TR>
     
        <TD align ="center">Monitor</TD>
        <TD>
        <input type="text" name="monitor" size="50">
        </TD>
     
    </TR>    
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    <TR>
        <TD align ="center">from : </TD>
        <TD>
        <SELECT name="date1" onChange ="choixDateDebut()">
            <OPTION VALUE="choix date" size="50">-- Choose start date --</OPTION>
            <% ResultSet rs2 = (ResultSet) stmt.executeQuery("select datex from Ping order by datex asc  ");%>
            <% while (rs2.next()) {%>
     
             <option value = <%=rs2.getString("datex") %> ><%=rs2.getString("datex") %></option>
        <%
        }
        %>
        <%
        rs2.close();
        %>
     
        </SELECT>
        </TD>
    </TR>    
    <TR>
     
        <TD align ="center">date debut</TD>
        <TD>
        <input type="date" name="dated" size="50">
        </TD>
     
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>    
    </TR>
    <TR>
        <TD align ="center">To : </TD>
        <TD>
        <SELECT name="date2" onChange ="choixDateFin()">
            <OPTION VALUE="choix date" size="50">-- Choose end date --</OPTION>
            <% ResultSet rs3 = (ResultSet) stmt.executeQuery("select datex from Ping order by datex asc  ");%>
            <% while (rs3.next()) {%>
     
             <option value = <%=rs3.getString("datex") %> ><%=rs3.getString("datex") %></option>
        <%
        }
        %>
        <%
        rs3.close();
        %>
     
        </SELECT>
        </TD>
    </TR>    
    <TR>
     
        <TD align ="center">date fin</TD>
        <TD>
        <input type="date" name="datef" size="50">
        </TD>
     
    </TR>
     
    </TABLE>
     
     
     
        <TR><TD><br><br><br><INPUT type="submit" value="Valider" ></TD>
        <TR><TD><input type="reset" name="reset"  value="reset"></TD></TR>
     
     
     
    </form>
    </center>
    </body> 
    </html>
    ma servlet qui est censé de tracer le graphe : ServletGraph_v1.java

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    package test;
     
    import java.io.IOException;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.Timestamp;
     
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    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.data.time.Minute;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
     
     
    public class ServletGraph_v1 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
     
      /**
         * 
         */
        private static final long serialVersionUID = 1L;
     
        ServletOutputStream outb;
        Connection connection;
        Statement statmt;
        ResultSet rs;
        String url = "jdbc:mysql://localhost:3306/test";
        String username = "root";
        String password = null ;
       // String dbURL = "jdbc:mysql://localhost:3306/test";
        String driver ="com.mysql.jdbc.Driver";
     
        //Initialiser les variables globales
     
        public void init() throws ServletException {
            try{
                Class.forName(driver);
            }
            catch (ClassNotFoundException e){
                System.out.println("Pilote non retrouvé");
            }
            try{
                connection = DriverManager.getConnection(url,username,password);
            }
            catch(SQLException sqle){System.out.println("Erreur lors de la connexion à la base de données");
            destroy();}
      }
     
      //Traiter la requête HTTP Get
     
      public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
     
        /*
         * res.setContentType("text/html");
        PrintWriter out = res.getWriter();
         */ 
        String groupName = req.getParameter("groupe");
        String moniteur = req.getParameter("monitor");
        String datedebut = req.getParameter("dated");
        String dateFin = req.getParameter("datef"); 
        /*
        out.println("<html>");
        out.println("<body>\n"+groupName+"\n<br>"+moniteur+"\n<br>"+datedebut+"\n<br>"+dateFin+"</body>");
        out.println("<html>");
        */
     
        outb = res.getOutputStream();
        StringBuffer tampon = new StringBuffer(1024);
     
        tampon.append("SELECT * FROM Ping WHERE groupName like");
        tampon.append(groupName);
        tampon.append("and monitorName like");
        tampon.append(moniteur);
        tampon.append("and datex BETWEEN");
        tampon.append(datedebut);
        tampon.append("and");
        tampon.append(dateFin);
     
        String requete = tampon.toString();
     
        final TimeSeries series = new TimeSeries("Minute", Minute.class);
     
        try {
            statmt = connection.createStatement();
            rs = statmt.executeQuery(requete);
     
            while(rs.next()){
     
                Timestamp v1 = rs.getTimestamp("datex");
                double v2=rs.getDouble("value2");
                series.addOrUpdate( new Minute(v1), v2);
            } 
            rs.close();
        }
        catch (SQLException sqle){System.out.println("Erreur de requete");}
     
        final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
        final String chartTitle = "Ping";
        final JFreeChart chart = ChartFactory.createTimeSeriesChart(
            chartTitle,
            "Time", 
            "Value",
            dataset,
            true,
            true,
            false
        );
     
        OutputStream out = res.getOutputStream(); 
        res.setContentType("image/png"); 
        ChartUtilities.writeChartAsPNG(out, chart, 600, 500);
     
      }
     
      //Nettoyer les ressources
      public void destroy() {
        try {
               connection.close();
               }
               catch (SQLException sqle){System.out.println("Erreur de fermeture de connexion à la base de données");}
     
        }
     
    }
    Merci d'avance pour vos propositions

  16. #16
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Je ne vois pas de messages d'erreur, juste des messages d'info ou des warning.
    Tu n'as d'ailleurs aucune raison de copier servlet-api-2.3.jar sous WEB-INF/lib. Normalement, ce jar existe déjà dans ton serveur d'applications.
    Quand aux warning concernant Log4j, c'est juste parce que le Digester essaie d'utiliser Log4j et tu ne dois pas avoir Log4j dans ton projet.
    Mais ceci ne devrait avoir aucune incidence sur le fonctionnement de l'appli.
    Modératrice Java - Struts, Servlets/JSP, ...

  17. #17
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    En fait, la requête n'est pas bonne.
    Pour les like, il faut ajouter des simples quotes devant et après chaque champ de type String et ajouter au moins un % avant la simple quote de fin.
    Et pour les champs dates, il doit falloir les convertir en java.sql.Date.

    Et puis, avant de constituer la requête, il serait bon de contrôler que chaque champ que tu récupères n'est pas égal à null pour éviter une exception de type NullPointerException ou autre.
    Modératrice Java - Struts, Servlets/JSP, ...

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Merci bcp pour ta réponse, si j ai bien compris, il faut faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    tampon.append("SELECT datex, monitorName FROM Ping WHERE groupName like");
        tampon.append('%groupName%');
        tampon.append("and monitorName like");
        tampon.append('%moniteur%');
        tampon.append("and datex BETWEEN");
        tampon.append('%datedebut%');
        tampon.append("and");
        tampon.append('%dateFin%');
    si c est comme ça, ça m affiche des erreurs.

    Merci bcp pour ton aide , en plus en ce moment j ai la pression et je dois donner une réponse la semaine prochaine.

  19. #19
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ben c'est normal que tu aies des erreurs car la simple quote, il faut la mettre avant la double quote et il ne faut pas mettre de simples quotes et de % pour les dates.
    Manifestement, tu ne maîtrises pas le langage SQL.

    Une requete SQL avec un like ça ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT datex, monitorName FROM Ping WHERE groupName like 'groupe1%'
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT datex, monitorName FROM Ping WHERE groupName like '%groupe1%'
    Pour le %, il faut le mettre là où c'est justifié.
    D'ailleurs le like est-il justifié ? Ne pourrais-tu pas simplement utiliser un = ?

    Enfin, avec le like, ça donnerait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tampon.append("SELECT datex, monitorName FROM Ping WHERE groupName like '%");
    tampon.append(groupName);
    tampon.append("%' and monitorName like '%");
    tampon.append(moniteur);
    tampon.append("%' and datex BETWEEN");
    et le % n'est valable que pour les cas où tu utilises le like et donc pas pour les dates.

    Mais si tes dates sont au format java.sql.Date dans ta base, il faut convertir tes champs dates de type String en java.sql.Date avant de constituer la requête car sinon, c'est sûr, tu auras des erreurs à l'exécution de la requête.
    Modératrice Java - Struts, Servlets/JSP, ...

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Salut c_nvy,

    Premièrement, merci pr ta réponse, effectivement, j ai modifié ma requete SQL, et j ai plus d 'erreur : "Erreur de requete", mais par contre qt je remplie mon formulaire et je clique sur le bouton "valider" ça me renvoie le graphe mais il est vide avec des valeurs ds l'Axe des Y qui ne correspondent pas à mes valeurs de base de données , et rien ds l'Axe des X. au niveau d'Eclipse, je trouve pas d'erreur .

    Voilà la derniére version de ma servlet ServletGraph_v1.java :

    Code :

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    package test;
     
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    //import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.Timestamp;
    //import java.util.Date;
     
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    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.data.time.Minute;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.apache.log4j.Logger;
     
     
    public class ServletGraph_v1 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
     
      /**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	static Logger log4j = Logger.getLogger("org.example.foo.bar");
    	ServletOutputStream outb;
    	Connection connection;
        Statement statmt;
        ResultSet rs;
        String url = "jdbc:mysql://localhost:3306/test";
    	String username = "root";
    	String password = null ;
       // String dbURL = "jdbc:mysql://localhost:3306/test";
        String driver ="com.mysql.jdbc.Driver";
     
        //Initialiser les variables globales
     
        public void init() throws ServletException {
        	try{
        		Class.forName(driver);
        	}
        	catch (ClassNotFoundException e){
        		System.out.println("Pilote non retrouvé");
        	}
        	try{
        		connection = DriverManager.getConnection(url,username,password);
        	}
        	catch(SQLException sqle){System.out.println("Erreur lors de la connexion à la base de données");
        	destroy();}
      }
     
      //Traiter la requête HTTP Get
     
      public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
     
    	/*
    	 res.setContentType("text/html");
    	PrintWriter out = res.getWriter();
    	 */ 
    	String groupName = req.getParameter("groupe");
    	String moniteur = req.getParameter("monitor");
    	String datedebut = req.getParameter("dated");
    	String dateFin = req.getParameter("datef"); 
     
    	/*
    	out.println("<html>");
        out.println("<body>\n"+groupName+"\n<br>"+moniteur+"\n<br>"+datedebut+"\n<br>"+dateFin+"</body>");
    	out.println("<html>");
    	*/
     
    	outb = res.getOutputStream();
        StringBuffer tampon = new StringBuffer(2000);
     
        tampon.append("select * from pingtest where groupName like '%");
        tampon.append(groupName);
        tampon.append(" %'and monitorName like'%");
        tampon.append(moniteur);
        tampon.append("%'and datex between '");
        tampon.append(datedebut);
        tampon.append("'and'");
        tampon.append(dateFin);
        tampon.append("'");
        //tampon.append(";");
     
        System.out.println("je suis là");
     
        String requete = tampon.toString();
    	//tring requete = "select * from PingTest where groupName like '%melbaroudi%'and monitorName like'%Ping rtwan%'and datex BETWEEN '2009-03-23 11:05:23'and '2009-03-23 12:46:08'";
     
        final TimeSeries series = new TimeSeries("Minute", Minute.class);
     
        try {
            statmt = connection.createStatement();
            rs = statmt.executeQuery(requete);
     
    		while(rs.next()){
     
    	    	Timestamp v1 = rs.getTimestamp("datex");
    	    	double v2=rs.getDouble("value2");
    	    	series.addOrUpdate( new Minute(v1), v2);
    	    } 
    		rs.close();
        }
        catch (SQLException sqle){System.out.println("Erreur de requete");}
     
        System.out.println("coucou");
     
        final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
        final String chartTitle = "Graph of Monitor Ping";
        final JFreeChart chart = ChartFactory.createTimeSeriesChart(
            chartTitle,
            "Time", 
            "Value",
            dataset,
            true,
            true,
            false
        );
     
        OutputStream out = res.getOutputStream(); 
        res.setContentType("image/png"); 
    	ChartUtilities.writeChartAsPNG(out, chart, 700, 600);
    	File fichier = new File("image.png");
    	 try { 
    	       ChartUtilities.saveChartAsPNG(fichier, chart, 400, 250); 
    	     } catch (IOException e) { 
    	       e.printStackTrace(); 
    	     } 
    	System.out.println("aloooo");
      }
     
      //Nettoyer les ressources
      public void destroy() {
        try {
               connection.close();
               }
               catch (SQLException sqle){System.out.println("Erreur de fermeture de connexion à la base de données");}
               System.out.println("hahahah");
        }
     
    }
    -------------------------------------------------
    et la dérniere version de mon formulaire :

    Code :

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@page language="java" import="java.sql.*"%>
    <%
    String url = "jdbc:mysql://localhost:3306/test";
    String username = "root";
    String password = null ;
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection(url,username,password);
    Statement stmt = con.createStatement();
    %>
     
    <html> 
    <head> 
    <title>SiteScope +</title> 
    <script type='text/javascript'>
     
    			function changer(){ 
    				document.formulaire.groupe.value=document.formulaire.g.value;	
    			}
    			function changerMonitor(){ 
    				document.formulaire.monitor.value=document.formulaire.m.value;
    			}
    			function choixDateDebut(){ 
    				document.formulaire.dated.value=document.formulaire.date1.value;
    			}
    			function choixDateFin(){ 
    				document.formulaire.datef.value=document.formulaire.date2.value;
    			}
    </script>
     
     
     
    </head> 
    <body bgcolor> 
    <center><H1>SiteScope +</h1>
     
    <form name="formulaire" method="Post" action="ServletGraph_v1">
     
    <TABLE BORDER=0 bgcolor>
     
    <TR>
    	<TD align ="center">Group Name : </TD>
    	<TD>
    	<SELECT name="g" onChange ="changer();">
    		<OPTION VALUE="choix group" size="50">-- Choose group --</OPTION>
    		<% ResultSet rs = (ResultSet) stmt.executeQuery("select groupName from PingTest group by groupName");%>
    		<% while (rs.next()) {%>
     
    		 <option value = "<%=rs.getString("groupName")%>" ><%=rs.getString("groupName") %></option>
    	<%
    	}
    	%>
    	<%
    	rs.close();
    	%>
     
    	</SELECT>
    	</TD>
    </TR>
    <TR>
     
    	<TD align ="center">valeur</TD>
    	<TD>
    	<input type="text" name="groupe" size="50">
    	</TD>
     
    </TR>
     
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    <TR>
    	<TD align ="center">Monitor Name : </TD>
    	<TD>
    	<SELECT name="m" id="m" class ="champ" onChange ="changerMonitor()">
    		<OPTION VALUE="choix monitor" size="50">-- Choose monitor --</OPTION>
     
    		<% ResultSet rs1 = (ResultSet) stmt.executeQuery("select monitorName from PingTest group by monitorName");%>
    		<% while (rs1.next()) {%>
     
    		 <option value ="<%=rs1.getString("monitorName")%>" ><%=rs1.getString("monitorName") %></option>
    	<%
    	}
    	%>
    	<%
    	rs1.close();
    	%>
     
    	</SELECT>
    	</TD>
    </TR>	
    <TR>
     
    	<TD align ="center">Monitor</TD>
    	<TD>
    	<input type="text" name="monitor" size="50">
    	</TD>
     
    </TR>	
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    <TR>
    	<TD align ="center">from : </TD>
    	<TD>
    	<SELECT name="date1" onChange ="choixDateDebut()">
    		<OPTION VALUE="choix date" size="50">-- Choose start date --</OPTION>
    		<% ResultSet rs2 = (ResultSet) stmt.executeQuery("select datex from PingTest order by datex asc  ");%>
    		<% while (rs2.next()) {%>
     
    		 <option value = "<%=rs2.getString("datex")%>" ><%=rs2.getString("datex") %></option>
    	<%
    	}
    	%>
    	<%
    	rs2.close();
    	%>
     
    	</SELECT>
    	</TD>
    </TR>	
    <TR>
     
    	<TD align ="center">date debut</TD>
    	<TD>
    	<input type="text" name="dated" size="50">
    	</TD>
     
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>
    </TR><TD></TD><TR>	
    </TR>
    <TR>
    	<TD align ="center">To : </TD>
    	<TD>
    	<SELECT name="date2" onChange ="choixDateFin()">
    		<OPTION VALUE="choix date" size="50">-- Choose end date --</OPTION>
    		<% ResultSet rs3 = (ResultSet) stmt.executeQuery("select datex from PingTest order by datex asc  ");%>
    		<% while (rs3.next()) {%>
     
    		 <option value = "<%=rs3.getString("datex")%>" ><%=rs3.getString("datex") %></option>
    	<%
    	}
    	%>
    	<%
    	rs3.close();
    	%>
     
    	</SELECT>
    	</TD>
    </TR>	
    <TR>
     
    	<TD align ="center">date fin</TD>
    	<TD>
    	<input type="text" name="datef" size="50">
    	</TD>
     
    </TR>
     
     
     
     
     
     
     
     
     
     
    </TABLE>
     
     
     
    	<TR><TD><br><br><br><INPUT type="submit" value="Valider" ></TD>
    	<TR><TD><input type="reset" name="reset"  value="reset"></TD></TR>
     
     
     
    </form>
    </center>
    </body> 
    </html>
    Merci beaucoup de votre aide.
    Images attachées Images attachées  

Discussions similaires

  1. Afficher ue image dans une page jsp appartir d'un ficher xml
    Par Mohcine.nb dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 19/05/2014, 10h59
  2. Afficher un PowerPoint dans une page Jsp
    Par goprok dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/03/2014, 21h47
  3. [JFreeChart] affichage d'un graphe dans une page jsp
    Par mokhtarmaroc dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 08/09/2007, 23h13
  4. afficher l'arborescence dans une page jsp
    Par Ssimo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 17/05/2007, 11h58
  5. afficher une fenetre dos dans une page jsp
    Par youp_db dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/10/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo