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

Applets Java Discussion :

Faire communiquer une applet et une BD


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut Faire communiquer une applet et une BD
    Bonjour à tous,
    j'ai un espace d'hébergement gratuit chez http://123.fr
    Sur cet espace, j'ai stoqué une applet de test qui fonctionne bien (en même temps, elle ne fait rien à part afficher une UI )
    A présent, je voudrais que cette applet puisse récupérer des infos sur la BD (qui est également fournie par http://123.fr).
    Il semblerait qu'il ne soit pas possible que l'applet dialogue directement avec la BD : il faudrait qu'elle dialogue avec un programme serveur ?

    J'ai essayé de développer un CGI ainsi que un servlet et même une applet toute simple qui ferait serveur ... mais impossible de comprendre comment faire fonctionner le programme qui fera serveur et le faire communiquer avec l'applet

    La BD et une BD mysql - phpmyadmin (je suis pas un spécialiste mais n'hésitez pas à me demander plus d'infos)

    Si quelqu'un pouvait m'aider parce que là, j'ai regardé tous les exemples et touts les tutoriels : à chaque fois on montre que mettre dans le code du serveur, mais on n'explique pas comment installer et faire communiquer tout ça

    Merci d'avance pour votre aide.

    PS : je peux fournir mon adr messenger pour toute aide en direct si besoin.

    Krusty.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut
    ba alors ? personne n'a une idée ?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Par défaut
    J'ai un truc dans le genre qui fonctionne mais c'est dans le cadre industriel :
    Un moteur de servlet Tomcat couplé à un serveur Web Apache.
    Petite explication :

    L'applet est téléchargé coté client, c'est donc pour des raison évidentes de sécurité qu'il n'a pas accès aux drivers de base de données qui sont eux situés sur le serveur.
    La solution que j'utilise est d'exécuté les requêtes (ainsi que les connexions) dans un sevlet qui lui par définition est exécuté coté serveur.
    Je transmet ensuite les informations à l'applet (qui bien sur les a demandé auparavant) via des flux de texte.

    Ce qui donne par exemple
    • J'ouvre une connexion vers mon servlet dans l'applet et j'envoi une requete :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    URL url = new URL(getCodeBase(),"MonServlet");
    URLConnection connexion = url.openConnection();
    connexion.setDoOutput(true);
    PrintWriter requete = new PrintWriter(connexion.getOutputStream(),true);
    // C'est ici qu'on envoi une requete
    requete.println("maRequete");	 
    requete.close();
    • Ensuite j'effectue un traitement dans la servlet en fonction de la requête

    • Et pour finir je récupère la réponse dans l'applet :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BufferedReader rep = new BufferedReader(new InputStreamReader(connexion.getInputStream()));
    String reponse = rep.readLine();
    C'est peut être un peu du bricolage mais ça fonctionne, cela implique de devoir matérialiser tes informations par des chaines de caractères que tu vas ensuite traiter dans ton applet.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut
    Ok je vois bien ce que tu veux dire !

    Mais comment se matérialise le servelt sur le serveur ?
    Il s'agit d'une classe java n'est ce pas ? Est ce qu'il me suffit de l'uploader sur le serveur pour que cela fonctionne ou faut-il que le servlet serveur soit en perpétuelle attente d'une requête ?

    Si c'est le second cas, cela veut il dire qu'il faut que je lance l'appli sur le serveur ? Si oui, comment puis je faire dans la mesure ou ce n'est pas moi qui héberge le serveur mais un fournisseur gratuit ?

    Merci pour ta réponse quoi qu'il en soit je vias continuer des tests.


    Krusty.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Par défaut
    Dans le cas d'un hébergeur gratuit ma solution parrait complexe puisqu'il faut que tu dispose d'un moteur de servlet (un peu comme un serveur web mais interpretant les servlets et les jsp) dans mon cas Tomcat.

    Le servlet est bel et bien coté serveur mais ce n'est pas un programme, c'est une classe héritant de javax.servlet.http.HttpServlet interprété par tomcat. C'est le moteur de servlet qui va attendre les requêtes et si une URL demandé correpond à celle de ton servlet alors il sera appelé.

    Si telle est ta question c'est le moteur de servlet qui scrute les requêtes et qui va appeler le (ou la, je ne sais jamais) bon(ne) servlet.

  6. #6
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Reponse
    Bonjour,

    En effet, il n'y a pas de mystère, l'interrogation de ta BD, dans ton cas précis, ne peut se faire que sur le serveur lui-même. C'est relativement simplem à comprendre, et cela n'a rien à voir avec la méthode. Chacun sait que Mysql exploite des ports bien précis (3306 par défaut). Hors, un hébergeur qui veut garantir une certaine sécurité n'ouvrira jamais ce port. Moralité, personne depuis l'extèrieur ne peut passer par ce port, donc accéder à la base de données. C'est pourquoi cette charge de travail est à réaliser côté serveur, ce que démontre parfaitement phpMyAdmin. A ma connaissance, la solution la plus simple reste le php. En effet, des solutions java pure via servelt, jsp, jnlp, ou bien même du script CGI semblent trop lourdes, et pas forcément possible à mettre en oeuvre sur un serveur dont on est pas le propriétaire, toujours pour des raisons de sécurités.
    Donc à part imaginer un interrogateur local au serveur écrit en php qui renverrai dans le tuyau HTTP les données résultante d'une interrogation MySQL, couplé à une applet qui exploitera le package java.net, et qui initiera la requette http d'interrogation puis récuperera le flux réponse formé par le code php, je ne vois pas d'autre solution.
    Bref, pour résumer, java.sql ne peut être exploité correctement qu'en réseau local, soit en Intranet, ou à la rigueur en extranet, mais certainnement pas en Internet, sauf ouverture des ports concernés. Evidement, ces ports ne sont pas les même selon le SGBD.

    Bonne chance.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. Appeler une méthode d'une applet dans une jsp
    Par salmoucha10 dans le forum Applets
    Réponses: 1
    Dernier message: 11/01/2011, 20h25
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 14h35
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48
  4. [applet] ouvrir une applet dans une fenetre
    Par rohel dans le forum Applets
    Réponses: 4
    Dernier message: 19/02/2005, 01h57
  5. [Applet] Ouvrir une applet dans une page HTML
    Par debutant java dans le forum Applets
    Réponses: 4
    Dernier message: 04/06/2004, 18h11

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