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 :

Besoin de conseil java/php/jsp [Débutant(e)]


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Besoin de conseil java/php/jsp
    Bonjour,
    Je suis actuellement en stage et je dois réaliser une application qui permet à un client distant de visualiser les manipulations faites par un utilisateur, via l'intranet un peu comme VNC mais en aurorisant seulement certaines fenêtres).

    J'ai fait une application java qui permet de faire des captures de la fenetre active et envoie l'image sur le serveur.
    J'ai fait une page web qui contient seulement l'image.

    Maintenant, j'ai beaucoup de mal à faire communiquer l'application java et la page web pour synchroniser l'actualisation de l'image dans le serveur et sur la page.

    J'ai essayé plusieurs méthodes, la première était d'envoyer des images sur le serveur tant que la fenetre est active et de réactualiser la page web toutes les secondes par exemple.
    Mais cela ne marchait pas bien car parfois la page se réactualisée pendant que l'image était en train d'être enregistrée sur le serveur.

    La deuxième méthode était de lancer un jar java qui effectue une seule capture à partir de la page web (en php) et d'afficher l'image puis d'actualiser la page. Cela n'a pas marché car j'obtenais des images noires (à cause des droits d'accès je pense).

    Maintenant, je me renseigne sur les servlets et je me demande si ce serait la solution.

    Je suis un peu perdue car je suis débutante et je ne sais pas comment procéder.

    Quelqu'un pourrait-il me conseiller ?

    PS : j'espère ne pas m'être trompée de sous-forum, je n'ai pas trouvé ce qui correspondait à mon problème.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hello,

    une servlet, ce n'est rien de plus qu'on programme qui tourne côté serveur. ça sait faire tout ce que sait faire php, et un peu plus, mais le principe de fonctionnement est le même.

    Entre php ou servlet, il faut choisir en fonction de ce qui est disponible... As-tu déjà un hébergement php? Si oui, alors fait la partie serveur en php, car un hébergement servlet/jsp est encore très cher (le mien est plus de 40CHF/mois).

    Maintenant, pour ton problème de mise en place, je pense que de lier la page web directement à l'url du fichier image physique sur le serveur n'est pas forcément une bonne idée.

    Essaie plutôt de lier l'image sur un script php (ou sur une servlet, si tu choisis cette option) qui renverra les données de l'image (tu auras donc un contrôle sur les données que tu envoie)

    index.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // HTML
    <html>
        <head>
            <meta http-equiv="refresh" content="1"/>
        </head>
     
        <body>
            <img src="/getimage.php" alt="No image found!" />
        </body>
    </html>
    getimage.php
    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
     
    <?php
    session_start();
     
    $data = null;
     
    // Si une nouvelle image est dispo
    if(hasNewData()) {
        $data = getNewData(); // On charge les données
        $_SESSION['lastimage'] = $data;
    } elseif(isset($_SESSION['lastimage'])) {
        $data = $_SESSION['lastimage'];
    } else {
        return;
    }
     
    header("Content-type: image/jpeg");
     
    echo $data;
     
     
    //---
    function hasNewData() {
        /* recherche si des nouvelles données 
            sont complètes, par exemple via une base de données, 
            ou autre tests */
    }
     
    function getNewData() {
          /* retourne les nouvelles données, par exemple via requête sur bdd ou lecture d'un fichier avec file_get_contents*/
    }
    ?>
    Un truc du genre devrait fonctionner correctement

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Merci !
    J'avais déjà essayé quelquechose du même genre.
    ça marche bien sous firefox mais pas sous IE car on voit du blanc entre deux rafraîchissements de la page et ça ne rend pas très bien.
    Du coup, j'ai enlevé la balise <meta> qui actualise la page et je l'ai remplacée par une fonction javascript qui actualise seulement l'image.

    Mais le php devient inutilisable. Pour l'instant, je me suis arrêtée sur une solution moyennement efficace où je tourne avec 3 images qui s'affichent les unes sur les autres.

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par sbalague Voir le message
    Mais le php devient inutilisable.
    Pourquoi? y'a pas de raison...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je pense que c'est parce que du coup la page n'est pas actualisée complètement, donc le php n'est pas réexécuté.
    C'est possible de réexécuter le php sans actualiser la page entière

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    tout dépend du javascript que t'as écrit... mais y'a pas de raison que le php ne soit pas exécuté...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Il est executé mais qu'une seule fois au niveau du serveur et il génère la page web. Je ne sais pas écrire une fonction javascript qui demande au php de se rééxécuter et je ne crois pas que ce soit possible sans actualiser la page entière.
    J'avoue que je ne comprends pas trop ce que vous voulez dire...

  8. #8
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par sbalague Voir le message
    Je ne sais pas écrire une fonction javascript qui demande au php de se rééxécuter et je ne crois pas que ce soit possible sans actualiser la page entière.
    Si, bien sûr, via les requêtes asynchrones AJAX.

    Donne ton javascript, je vais voir si qq chose cloche
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je connais pas AJAX
    Mon javascript, c'est juste une fonction qui permet de rafraichir l'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var img = "devant";
    var src = "images/devant.png";
    delai = 1000;
       function refresh() {
       document.images[ img ].src = src + "?a=" + Math.random();
       setTimeout("refresh()", delai);
      }
    j'ai fait 3 fois la même pour chacune des 3 images avec des délais différents.

    Mais je pense pas que c'est ce que tu attendais.

  10. #10
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par sbalague Voir le message
    Je connais pas AJAX
    Asynchronous Javascript And XML => ça sert à ne rafraichir que des parties de pages (blocs)

    Citation Envoyé par sbalague Voir le message
    Mon javascript, c'est juste une fonction qui permet de rafraichir l'image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var img = "devant";
    var src = "images/devant.png";
    delai = 1000;
       function refresh() {
       document.images[ img ].src = src + "?a=" + Math.random();
       setTimeout("refresh()", delai);
      }
    j'ai fait 3 fois la même pour chacune des 3 images avec des délais différents.

    Mais je pense pas que c'est ce que tu attendais.
    sisi... regarde le lien que t'as mis src="images/devant.png"...

    Il faut mettre "src="getimage.php""

    Sinon, bah ça fait des pauvres requêtes sur un fichier static...

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Ha ok, je savais pas qu'on pouvait faire ça.

    Je sais que ça n'a pas l'air très compliqué mais je n'y arrive pas

    La variable $data que tu utilises dans ton modèle getimage.php doit etre de quelle forme? en fait, je ne vois pas trop ce que je dois mettre dans la fonction getNewData(), j'ai aussi des problemes pour lire/écrire dans un fichier.

    voilà mon code, il doit y avoir plein d'erreurs mais je ne les trouve pas.
    Merci pour ton aide en tout cas !

    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
     
    function hasNewData() {
        /* recherche si des nouvelles données  */
            $filename = "enregistrer.txt";
            $monfichier = fopen($filename,"r+");
            if (fgets($filename)=="ok"){
                fseek($monfichier, 0);
                fputs("non");
                fclose($monfichier,$filename);
                return true;
            }
        fclose($monfichier);
        return false        
    }
     
    function getNewData() {
          /* retourne les nouvelles données*/
          return "images/devant.png";
    }

  12. #12
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par sbalague Voir le message
    La variable $data que tu utilises dans ton modèle getimage.php doit etre de quelle forme?
    Elle doit être de type "string" et doit contenir toutes les données binaires de l'image, ce que tu récupère via file_get_contents ou via une requête sur une base de données, ou autre chose
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Merci ! (avec du retard)
    ça marche très bien.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    je reviens sur cette discussion pour demander si cela est possible sans Javascript.
    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 12/03/2013, 23h28
  2. [RegEx] Besoin de conseils pour script PHP/MySQL.
    Par ABandApart dans le forum Langage
    Réponses: 0
    Dernier message: 05/08/2010, 12h27
  3. Besoin Fonction JAVA pour JSP
    Par Danyboy11 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/03/2007, 09h04
  4. Projet Java - besoin de conseils
    Par Machiavel dans le forum Java EE
    Réponses: 9
    Dernier message: 26/12/2006, 13h53
  5. Besoin de conseil php et mysql
    Par virus2000fr dans le forum Administration
    Réponses: 6
    Dernier message: 24/02/2006, 10h39

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