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 :

Mise à jour d'un champ dans une JSP en fonction de la valeur d'une variable Java


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Mise à jour d'un champ dans une JSP en fonction de la valeur d'une variable Java
    Bonjour à tous,

    Je viens vers vous, car après de multiples recherches et tentatives de compréhension, je reste toujours sur des echecs quand à la mise à jour de la valeur d'un champs contenu dans une JSP en fonction de la valeur d'une variable d'une classe JAVA (côté serveur).
    En d'autres mots, je voudrais que lorsque ma variable JAVA change de valeur, le champs correspondant dans ma JSP change automatiquement sa valeur aussi. ET cela sans passer par un basique Refresh de ma JSP via les balises meta.

    Je voudrais donc à travers un exemple très simple, mettre en place ce mécanisme qui, en fonction des recherches que j'ai faites, devrait utiliser le principe de pushlets.

    Exemple d'application :

    - 1 JSP avec un bouton submit Start, un bouton submit Stop et un champs texte nommé "compteurJSP"

    - 1 servlet permettant de savoir quand l'opérateur à cliqué sur le start ou le stop. De plus quand l'opérateur à appuyé sur le start, la servlet lance le Thread de ma classe java (cf après), et lorsqu'il appuie sur le Stop, la servlet arrête le Thread

    - 1 classe java nommée "Compteur.java", qui hérite de la classe Thread et qui possède uniquement la méthode run() dans laquelle on met ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int compteurJAVA = 0;
    boolean stopThread = false;
     
    while(!stopThread){
         compteurJAVA++;
         try{
             sleep(5000);
         }catch(InterruptedException e){
         }
    }
    Je voudrais donc qu'à chaque changement de la valeur de compteurJAVA, la valeur de compteurJSP soit mise à jour dans ma JSP.

    Avez vous une idée de comment faire cela et si oui pouvez vous m'indiquer des pistes?

    Merci et bonne journée

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java/JEE Web
    Inscrit en
    Octobre 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java/JEE Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 88
    Points : 313
    Points
    313
    Par défaut
    Salut,

    Je pense que ta seule solution, c'est un code javascript qui envoie une requête ajax régulièrement à ton serveur (genre toutes les 5 secondes) et qui agit selon la réponse.

    Tu ne peux pas à ma connaissance faire changer une valeur de ta page web à la seule initiative de ton serveur. Ça poserait des soucis de sécurité énormes.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    La solution ajax est certainement la plus simple à mettre en oeuvre.
    Sinon, il y aurait l'applet avec un socket vers le serveur, mais bon, pour un compteur...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 15
    Points
    15
    Par défaut pushlets
    Bonjour et merci pour vos réponses,

    J'avais vu sur internet que le principe des pushlets pouvait faire cela, cependant je n'arrive pas à mettre en application ce principe.

    Pour l'exemple du compteur, ce n'est qu'un exemple simple de ce que je voudrais faire. Dans la réalité, ca serait transmettre à ma JSP les nouvelles valeurs de plusieurs variables, et ainsi mettre à jour l'IHM champs par champs et non pas en faisant un rafraîchissement de toute la JSP.

    Actuellement, j'ai écrit une méthode javascript qui fait une requête vers ma servlet. Celle ci met à jour les attributs de la variable request, avec les nouvelles valeurs à afficher, puis envoi à son tour une requête à la JSP, qui récupère les valeurs des attributs pour les afficher dans les champs correspondant.

    Si vous avez des idées faites moi en part!!

    Merci pour vos réponses!

    Bonne journée

    Cette méthode marche très bien, mais maintenant je cherche pour apporter des améliorations à mon application et apparemment il serait possible de mettre à jour champs par champs ma JSP à chaque changement de la variable associée côté serveur.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Fait une recherche sur AJAX, tu trouveras plein d'exemples...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    En effet AJAX ferait "bien" ce que je voudrais à un détail près. Le client est obligé d'envoyer une requête au serveur qui renverra à son tour les infos.

    Or ce que je voudrais, c'est plus un principe d'évènementiel :
    Le client (JSP) attend que le serveur (servlet) lui informe qu'une variable a changé de valeur. En d'autres mots, lorsqu'une variable change de valeur, la servlet alerte la JSP de ce changement et lui envoi la nouvelle valeur.

    Après j'ai peut être (et c'est possible) que je n'ai pas tout saisi le principe d'AJAX. En tout cas de ce que j'ai compris, avec AJAX, il faut impérativement que le client envoie une requête au serveur avant de récupérer les infos.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Java/JEE Web
    Inscrit en
    Octobre 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java/JEE Web

    Informations forums :
    Inscription : Octobre 2008
    Messages : 88
    Points : 313
    Points
    313
    Par défaut
    Tu as bien compris ce que fait Ajax.
    Mais ce que tu veux le serveur changeant de lui même une valeur affichée sur le client n'est pas possible techniquement.

    De plus tu fais une erreur, la jsp n'est pas côté client, elle est compilée côté serveur et ce qui est envoyé au client, ce n'est que du html, css, javascript.
    Tu peux changer des valeurs sur la jsp côté serveur mais pour l'afficher réellement, il faudra que la page soit rafraichie.
    Et c'est ce que va pouvoir faire l'ajax : envoyer une requête sur le serveur et si ta valeur a changé, le javascript mettra à jour la valeur affichée à l'écran sans devoir rafraichir la page complètement.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Okiii, c'est bien ce que j'avais compris ^^ Merci.

    Du coup est ce quelqu'un connait justement le principe des "pushlets" justement? Car après des recherches je suis tombé la dessus, et cela m'intrigue ^^

    En tout cas merci pour vos réponses qui m'ont pas mal éclairé sur Ajax

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/04/2014, 11h24
  2. Réponses: 4
    Dernier message: 01/02/2013, 15h01
  3. [WD14] Mise à jour d'un champ dans une table
    Par forgotten dans le forum WinDev
    Réponses: 2
    Dernier message: 16/03/2011, 10h34
  4. Mise à jour d'un champ dans une session
    Par marry dans le forum Langage
    Réponses: 7
    Dernier message: 13/10/2009, 11h06

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