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 :

flux sur une page jsp


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 59
    Points : 37
    Points
    37
    Par défaut flux sur une page jsp
    Bonjour,

    j'ai du mal à comprendre le concept des pages jsp qui génère des "documents" et peuvent en recevoir.

    Je m'explique, on travaille sur un application client / serveur.
    Le client doit envoyer un "document" ou plutot "flux" sur une page jsp de type xml ( en sachant que ce document n'est pas écrit sur le disque dur). Un seul paramètre est passé en méthode POST au serveur, (la valeur de ce paramètre est le flux xml)

    Ensuite le client doit se mettre à l'écoute de l'envoi de réponse du serveur sur cette même page. Il doit donc récupérer le flux.


    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
     
    SAXBuilder sxb = new SAXBuilder();
     
                try {
     
                   URL xmlUrl = new URL("mon adresse jsp");
    		URLConnection urlConnection = xmlUrl.openConnection();
     
    		urlConnection.connect();
     
    		InputStream stream = urlConnection.getInputStream();
     
                    xmlDocument = sxb.build(stream);
                } catch (JDOMException e) {e.printStackTrace();
                } catch (IOException e) {e.printStackTrace();}
     
                Element racine = xmlDocument.getRootElement();
     
            } catch (MalformedURLException ex) {
                Logger.getLogger(LectureXML.class.getName()).log(Level.SEVERE, null, ex);
                ex.printStackTrace();
            }catch (IOException ex) {
                    Logger.getLogger(LectureXML.class.getName()).log(Level.SEVERE, null, ex);
                    ex.printStackTrace();
            }
    je ne peux pas tester le code étant donné que pour le moment aucun serveur n'est finis.
    Mais est ce que avec ce code je récupère bien le flux xml générer par le serveur?
    Et comment récupérer les erreurs générer par le serveur? genre erreur 404 ...

    et pour envoyer un flux au serveur comment je dois procéder? je n'arrive pas à trouver de code, et à comprendre le fonctionnnement.
    je créer une connexion mais après? je fais un OutputStream?
    et surtout comment utilisé la méthode POST?

    merci

  2. #2
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    Et comment récupérer les erreurs générer par le serveur? genre erreur 404 ...
    Le serveur (s'il est codé en Servlet) utilise HttpServletResponse pour encapsuler sa réponse. Cet objet se base sur un flux pour transmettre les données au client.
    Selon le type de client que tu utilises, tu dois analyser la réponse HTTP pour récupérer le code d'erreur. Ceci dit, je ne pense pas que tu aies la garantie de toujours avoir un code de retour "standard". Mais dans ton cas, l'analyse du flux reçu devrait t'en apprendre plus sur le retour du serveur.

    et surtout comment utilisé la méthode POST?
    Les formulaires sont le moyen classique pour envoyer des données par POST. Le net regorge de ressources expliquant le fonctionnement du protocole HTTP, si tu te poses des questions sur la méthode POST.
    SCJP 5 | CAPM

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    merci pour ta réponse.
    Pour ce qui est du POST j'ai pu faire un petit quelque chose, mais c'est la lecture qui me pose problème.
    Comme j'ia indiqué je cherche à recuperer un XML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InputStream stream = urlConnection.getInputStream();
    xmlDocument = sxb.build(stream);
    donc si je test ma variable xmlDocument (si elle est null) je peux savoir si une erreur est survenu?
    Ou faut que je test le retour avant? genre sur le retour de cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conn = (HttpURLConnection) url.openConnection();
    mais une question me turlupine. Si le serveur ne répond pas dans l'immédiat, il vient un soucis?
    J'ai mis moncode de lecture ci dessus dans une boucle while infinie, qui se termine si xmlDocument est différent de null.
    Mais si le serveur vient à pas répondre ma boucle va toujours continuer, comment est il possible de l'arrêter au bout de 1minutes d'exécution?

  4. #4
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    donc si je test ma variable xmlDocument (si elle est null) je peux savoir si une erreur est survenu?
    Ne sachant pas tout de ton application, je ne saurais te dire si un xmlDocument null signifie forcément qu'une erreur est survenue. En principe, toute non conformité de ton flux avec les exigences de la méthode build devrait résulter en un xmlDocument null (là je m'exprime sous le contrôle des spécialistes de SAX).

    Ou faut que je test le retour avant? genre sur le retour de cette ligne ?
    De toute façon, il me paraît évident que tu devrais gérer les cas de flux non conformes pour build.

    mais une question me turlupine. Si le serveur ne répond pas dans l'immédiat, il vient un soucis?
    Plusieurs cas de figure sont imaginables. Les spécifications de ton application devraient indiquer (tant côté client que serveur) comment elle doit se comporter dans ce type de scénario.

    Mais si le serveur vient à pas répondre ma boucle va toujours continuer, comment est il possible de l'arrêter au bout de 1minutes d'exécution?
    Par exemple en utilisant un Timer.
    SCJP 5 | CAPM

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 59
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par welcome_59 Voir le message
    Ne sachant pas tout de ton application, je ne saurais te dire si un xmlDocument null signifie forcément qu'une erreur est survenue. En principe, toute non conformité de ton flux avec les exigences de la méthode build devrait résulter en un xmlDocument null (là je m'exprime sous le contrôle des spécialistes de SAX).

    De toute façon, il me paraît évident que tu devrais gérer les cas de flux non conformes pour build.
    Dans ce cas comment je dois faire pour identifier les flux ? Y a t'il une fonction pour ca?

    et pour résumer vite fait mon application:
    Un serveur tomcat fonctionne, d'un autre côté un client lui envoi un xml, et il attend une réponse spécifique à chaque type d'envoi xml ( 4 différents donc 4 réponses distincts).
    Et à chaque réception il faut que j'identifie si cela correspond a un envoi d'un client.

    Par exemple en utilisant un Timer.
    ha merci pour l'indication, je cherchais plus du côté des fonctions clock.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/08/2008, 16h07
  2. Autocompletion d'un formulaire sur une page JSP
    Par topmas dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 14/05/2008, 18h38
  3. Authentification sur une page jsp
    Par FabienN dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 07/03/2008, 09h53
  4. afficher resultat d'une requete sur une page jsp
    Par vasco_di_gama dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/07/2007, 14h56
  5. [Visual Web] focus sur une page JSP (anchor)
    Par tomagold dans le forum NetBeans
    Réponses: 3
    Dernier message: 27/06/2007, 14h19

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