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 :

Téléchargement d'un fichier de taille inconnue (pas de res.setContentLength() )


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Par défaut Téléchargement d'un fichier de taille inconnue (pas de res.setContentLength() )
    Bonjour,

    Dans mon appli J2EE simple (servlets uniquement), je dois télécharger un fichier sur le navigateur.

    Simple me direz-vous ?
    Le problème vient du fait que ce fichier est lu progressivement à partir d'appels successifs à des services Tuxedo qui me servent le fichier par blocs.
    Je ne peux donc pas connaitre a priori la taille du fichier.

    Ce fichier peut être très volumineux, il est donc hors de question de le charger totalement en mémoire afin de calculer sa taille avant de l'envoyer en une seule fois au client.

    Je souhaiterai donc appeler mon service Tuxedo et envoyer après chaque appel à mon client les données reçues.

    Celà pose-t-il un problème de ne pas préciser la taille de la réponse envoyée au client (pas de res.setContentLength() ) ?

    J'ai lu quelque part que c'était lié aux connexions persistantes HTTP 1.1,
    est-ce vrai ? Si oui peut-on forcer l'utilisation de HTTP 1.0 pour ce cas particulier ?

    Avez-vous des conseils ou des retours d'expériences sur ce sujet à me donner ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    J'ai lu quelque part que c'était lié aux connexions persistantes HTTP 1.1
    Oui. en HTTP 1.1 on garde les memes canaux TCP pour discuter (1 canal en lecture, 1 en ecriture). Donc un client qui lit des données doit savoir si c'est la suite du message actuel ou si c'est le debut d'un nouveau message. Pour cela il utilise "content-length" pour savoir quand le message est terminé

    peut-on forcer l'utilisation de HTTP 1.0 pour ce cas particulier ?
    Bah on peut toujours tout faire en informatique. En HTTP 1.0, tu lis des données jusqu'a ce que le canal soit fermé, donc tu n'as pas besoin de connaitre la taille a l'avance.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Par défaut
    Merci.

    Donc : pour ne pas avoir à renseigner le setContentLength(), une des solutions est bien de forcer la communication en HTTP 1.0.

    J'ai trouvé en furetant qu'il suffisait de mettre la variable suivante dans le header HTTP "Connexion: close" mais celle-ci doit-elle être positionnée dans le GET/POST du client, ou dans la réponse du serveur (avant le sortie.write(...)), ou les deux ?

    Merci d'avance à tous.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par www.w3.org
    HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion of the response. For example,
    Connection: close
    Donc c'est l'emetteur qui doit mettre ca dans son header
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 57
    Par défaut
    Bien vu ...

    Merci beaucoup !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par pseudocode
    Donc c'est l'emetteur qui doit mettre ca dans son header
    Est-ce que tu peux préciser ce que tu veux dire par
    mettre ca dans son header
    Moi j'ai mis un composant hyperlien sur ma page web, et je ne sais pas comment à accéder à ce Header.

    As tu un exemple ?

    Merci.

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    google powa ... http://support.microsoft.com/kb/310156

    je sais pas ou t as vu l'existance de composant hyperlien, ca n'existe pas ...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par *alexandre*
    google powa ... http://support.microsoft.com/kb/310156

    je sais pas ou t as vu l'existance de composant hyperlien, ca n'existe pas ...
    bien oui, il est sur la palette de VWP Netbeans.

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    ca n'existe pas dans la spec JSF, demande à Sun

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par *alexandre*
    ca n'existe pas dans la spec JSF, demande à Sun
    Je ne suis pas certaine si on parle de la même chose.
    as tu ouvert ton EDI Netbeans es spécifiant Visual Web Pack ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/11/2012, 16h04
  2. Probleme lecture de fichier de taille inconnu
    Par Slumpy dans le forum VB.NET
    Réponses: 2
    Dernier message: 03/09/2007, 21h12
  3. Réponses: 2
    Dernier message: 22/12/2006, 11h25
  4. Réponses: 9
    Dernier message: 02/08/2006, 11h31
  5. recherche d'un motif inconnu et de taille inconnu
    Par perlaud dans le forum Modules
    Réponses: 6
    Dernier message: 07/07/2004, 10h04

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