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

Servlets/JSP Java Discussion :

Rechargement périodique d'une servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Par défaut Rechargement périodique d'une servlet
    Bonjour,

    J'ai une servlet qui se connecte à une base de données, qui prend des informations et les affiches sous une forme de courbe sur une page JSP.

    Ma base de données est mise à jour toutes les 5min quasiment mais le problème est que je dois redémarrer mon serveur afin que ma servlet prenne en compte ces changements.

    Y a-t-il un moyen pour qu'à chaque fois que je rafraichis ma page web et qu'il y a une insertion dans ma base de données, ma courbe soit à jour sans redémarrer mon serveur local ?
    J'ai cherché j'ai trouvé la fonction classloader mais apparemment celle-ci ne fonctionne que s'il y a un changement de code...

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Les méthodes doPost/doGet d'une servlet sont appelées chaque fois que la servlet est invoquée avec la méthode HTTP en question.

    Si t'as servlet ne récupère jamais des données à jour c'est que ta base de données ne l'est pas. As-tu bien comitté des transactions après avoir inséré en base de données ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Par défaut
    oui,
    la 1ere fois que je lance l'adresse dans mon naviguateur, j'ai une courbe avec les données existant de ma base de données, mais une fois que j'ajoute une autre donnée a ma table et et que je rafraichi ma page, rien ne se passe..d'ailleurs je n'ai plus d'affichage

    Voila comment j'affiche ma courbe generé par ma servlet en JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img border="1" src="Http" width="600 height="300">
    avec Http est ne nom de ma servlet ( j'ai pas un formulaire )

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est le code de ta servlet qui compte. C'est lui qui ne refait pas ses calculs.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Par défaut
    Salut, en faisant ça je sais pas si ton image est rechargée, car si l on considère que l'appel d'une servlet dans un navigateur recharge forcément ta page, à mon avis ce même appel dans src d'une image ne ce passe pas de la même manière étant donné que les navigateur ont un cache automatique sur les ressources, il est possible qu'il considère que ton image est déja présente dans son cache

  6. #6
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    effectivement le problème de cache du navigateur peut être à l'origine de ton problème
    Tu peux vider ton cache pour vérifier
    Sinon une technique est de générer un nom de fichier aléatoire et de renvoyer le path de ton image à ta JSP

  7. #7
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    c'est le code de ta servlet qui compte. C'est lui qui ne refait pas ses calculs.
    Voila le code de ma servlet
    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
     
    package metier;
     
    import java.awt.Graphics;
     
    import java.awt.image.BufferedImage;
     
    import java.io.File;
     
    import java.io.IOException;
     
    import java.io.OutputStream;
     
    import java.io.PrintWriter;
     
    import java.sql.Date;
     
    import java.sql.ResultSet;
     
    import java.sql.SQLException;
     
    import java.sql.Timestamp;
     
    import java.util.Enumeration;
     
     
     
    import javax.imageio.ImageIO;
     
    import javax.servlet.ServletConfig;
     
    import javax.servlet.ServletContext;
     
    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.data.time.Minute;
     
    import org.jfree.data.time.Second;
     
    import org.jfree.data.time.TimeSeries;
     
    import org.jfree.data.time.TimeSeriesCollection;
     
     
     
    import com.sun.corba.se.impl.orbutil.graph.Graph;
     
     
     
    import marouene.TimeSeriesDemoTest;
     
     
     
     
     
    public class Http extends HttpServlet {
     
    	protected void processRequest(HttpServletRequest request, HttpServletResponse response)
     
        throws ServletException, IOException {
     
     
     
    		response.setContentType("image/png");
     
    		TimeSeriesDemoTest http = new marouene.TimeSeriesDemoTest("Http");
     
    		 http.pack();
     
     
     
     
     
     
     
     JFreeChart imagechart;
     
    try {
     
    	imagechart = http.tracercourbe("heure","http","httptable","Evolution du transfert Http","Debit en Ko/s","now()");
     
    	 OutputStream out = response.getOutputStream(); 
     
    	 ChartUtilities.writeChartAsPNG(out, imagechart, 700, 500);	
     
     
     
     
     
    } catch (SQLException e) {
     
    	e.printStackTrace();
     
    }
     
     
     
    	}
     
     
     
    	 protected void doGet(HttpServletRequest request, HttpServletResponse response)
     
         throws ServletException, IOException {
     
     processRequest(request, response);
     
    }
     
     
     
    	}
    et pour 'laffichage j'ai fait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     oui,
    la 1ere fois que je lance l'adresse dans mon naviguateur, j'ai une courbe avec les données existant de ma base de données, mais une fois que j'ajoute une autre donnée a ma table et et que je rafraichi ma page, rien ne se passe..d'ailleurs je n'ai plus d'affichage
     
    Voila comment j'affiche ma courbe generé par ma servlet en JSP
     
    Code :
     
     
    <img border="1" src="Http" width="600 height="300">
     
    avec Http est ne nom de ma servlet ( j'ai pas un formulaire )
    Chaque fois que je rafraichi ma page et il y'a un nouveau point il s'affiche désormais, je ne sais pas si c'etait un probleme de servlet ou bien le fait que quand j'appel une image par l'adresse de servlet ca la recharge automatiquement

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Dans un premier temps tu pourrais stocker l'image générée dans un fichier et ouvrir le fichier avec ton explorateur de fichier.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. Réponses: 28
    Dernier message: 18/05/2010, 15h14
  2. [TOMCAT] Problème de timeout d'une servlet
    Par tuxor dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 18/09/2007, 12h04
  3. Réponses: 2
    Dernier message: 29/03/2004, 13h44
  4. [debutant]renvoyer sur une jsp depuis une servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2004, 11h55
  5. Affichage périodique d'une fonction
    Par boobob dans le forum C
    Réponses: 16
    Dernier message: 08/12/2003, 16h06

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