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 :

[Données]Passer des données entre applet et Servlet


Sujet :

Applets Java

  1. #1
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut [Données]Passer des données entre applet et Servlet
    Salut, je développe une application ayant l'architecture applet-servlet-sgbd, et je voudrais envoyer les resultats de requète exécutées par la servlet à l'applet.

    Je pensai au début utiliser les ResultSet directement mais ce n'est pas sérialisable, alors quel type de données je pourrai utiliser qui permet de manipuler les résultats facilement?

    J'ai entendu parler de collection, est-ce approprié?
    Est-ce qu'il y a un tutoriel qui en parle?

    Merci d'avance 8)

    [ Modéré par SEMPERE Benjamin ]
    Modification du titre
    Les Règles du Forum

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    Salut,

    Est-ce ton applet qui interroge la servlet ?

  3. #3
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Oui mon applet envoi la requète à la servlet via un ObjectOutputStream, la servlet lit la requète qui arrive dans son ObjectinputStream, l'exécute et doit renvoyer le resultSet à l'applet dans un autre ObjectOutputStream.

    Et c'est là que ça coince, le resultSet n'est pas sérialisable, j'ai cette erreur : java.io.WriteAbortedException : writing aborted ; java.io.NotSerializableException : com.microsoft.jdbc.base.BaseResultSet

    Le serveur de base de donnée est Sql Server et j'utilise le driver JDBC fournit par Microsoft.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 42
    Points : 37
    Points
    37
    Par défaut
    Le plus simple est de gérer la remonter des informations avec une structure propre. Style une ArrayList d'objet que tu as défini

    Exemple: tu veux la liste des voitures ayant comme cylindres 1500cm3.

    Tu fais ta requête, tu crée une classe Voiture avec les attributs qui vont bien.
    Ta servlet récupére les informations du ResultSet et génére les objets Voiture. Tu inseres ensuite au fur et à mesure les objets Voiture dans une ArrayList
    Enfin, tu balances ton ArrayList à ton applet

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 76
    Points : 72
    Points
    72
    Par défaut
    Ou autre possibilité, la servlet renvoie à l'applet un flux xml par exemple, résultat de ta requète.

  6. #6
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    J'ai compris pour la voiture, par contre j'ai une quinzaine de tables différentes, ça ne risque pas de faire complexe pour remplir l'arrayList avec la bonne classe?
    Aurais-tu un lien vers un exemple utilisant une ArrayList stp? je crois comprendre la théorie, mais j'en ai encore jamais manipulé.

    Le flux XML, je connais encore moins...mais merci de proposer

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 42
    Points : 37
    Points
    37
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ArrayList liste = new ArrayList();
     
    liste.addElement(obj); --> ajout un element dans la liste
     
    liste.get(1); --> récupére l'element à la position 1

  8. #8
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    A mon avis, le plus simple, c'est bien d'utiliser les Collections. C'est d'ailleurs la méthode la plus couramment utilisée.
    Les lectures indispensable sur les Collections :
    FAQ developpez.com
    Doc de Sun sur les Collections
    Sinon, fais des recherches sur le forum. Le thème "copier les données d'un ResultSet dans une Collection" a été abordé plusieurs fois.

    Sinon, il me semble que tu peux utiliser les RowSet, mais je n'ai personnellement jamais regardé de près.
    Sinon, tu as effectuvement la possibilité de passer par un fichier, XML ou propriétaire (selon les contraintes que tu as).

    Je pensai au début utiliser les ResultSet directement mais ce n'est pas sérialisable
    Ah ! il me semblait bien


    [Edit]
    Tiens, j'ai retrouvé un sujet intéressant :
    [Résolu] [JDBC] Stocker les résultats d'une requête
    [/Edit]

  9. #9
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Merci beaucoup, je vais étudier ça de près
    Et oui tu avais raison pour le ResultSet, désolé

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Les objets de la collection ne doivent-ils pas eux même être sérialisables? :

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 42
    Points : 37
    Points
    37
    Par défaut
    Tout ce qui transit doit être Serialisable ...

    Pour la collection, c'est bien si tu ne souhaites pas garder un ordre dans tes resultats ...

  12. #12
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Non je n'ai pas besoin d'avoir un ordre dans les résultats, je parcourerai la liste pour trouver l'objet voulu.

    Pour la sérialisation, je pense qu'il suffit que mes classes créées implémentent l'interface Serializable?
    La classe ArrayList est déja sérialisable elle, non?

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/08/2014, 09h25
  2. Typage des données/manipulation des données
    Par Moravski dans le forum GTK+ avec C & C++
    Réponses: 25
    Dernier message: 28/01/2011, 19h00
  3. Passer des données de tableau entre methodes.
    Par PascalBeaudoin dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 14/12/2008, 17h52
  4. Réponses: 3
    Dernier message: 26/05/2008, 17h20
  5. Réponses: 15
    Dernier message: 08/04/2007, 01h12

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