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 :

Renvoyer un PDF suite à POST dans IE


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut Renvoyer un PDF suite à POST dans IE
    Bonjour,

    J'ai fait une servlet qui utilise JasperReport et renvoie des fichiers PDF.
    J'ai mis le code dans la methode doGet et dans la méthode doPost j'appelle le doGet.

    Lorsque je suis dans IE et que j'appelle ma servlet par la mèthode GET çà fonctionne. Par contre quand je l'appelle avec la mèthode POST cà ne sort rien.
    Lorsque je suis dans FireFox çà marche quelque soit la methode que j'utilise pour appeler ma servlet.

    Pour comprendre ce qui se passe, j'ai affiché un message au début de chaque methode ainsi que le contenu de l'entête envoyé par le navigateur.
    Voilà ce que j'obtiens :
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    -- Appel IE par GET
    Début doGet
    Détail de l'entête
    	accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    	accept-language=fr
    	accept-encoding=gzip, deflate
    	user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    	host=localhost:8080
    	connection=Keep-Alive
    Début retour du PDF dans response
    Fin du retour du PDF dans response
    Début doGet
    Détail de l'entête
    	accept=*/*
    	accept-encoding=gzip, deflate
    	user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    	host=localhost:8080
    	connection=Keep-Alive
    Début retour du PDF dans response
    Fin du retour du PDF dans response
     
    -- Appel IE par POST
    Début doPost
    Détail de l'entête
    	accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    	referer=http://localhost:8080/SellReport/?
    	accept-language=fr
    	content-type=application/x-www-form-urlencoded
    	accept-encoding=gzip, deflate
    	user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    	host=localhost:8080
    	content-length=42
    	connection=Keep-Alive
    	pragma=no-cache
    Début doGet
    Détail de l'entête
    	accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    	referer=http://localhost:8080/SellReport/?
    	accept-language=fr
    	content-type=application/x-www-form-urlencoded
    	accept-encoding=gzip, deflate
    	user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
    	host=localhost:8080
    	content-length=42
    	connection=Keep-Alive
    	pragma=no-cache
    Début retour du PDF dans response
    Fin du retour du PDF dans response
     
    -- Appel Firefox par GET	
    Détail de l'entête
    	host=localhost:8080
    	user-agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
    	accept=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    	accept-language=fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    	accept-encoding=gzip,deflate
    	accept-charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7
    	keep-alive=300
    	connection=keep-alive
    Début retour du PDF dans response
    Fin du retour du PDF dans response
     
    -- Appel Firefox par POST
    Début doPost
    Détail de l'entête
    	host=localhost:8080
    	user-agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
    	accept=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    	accept-language=fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    	accept-encoding=gzip,deflate
    	accept-charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7
    	keep-alive=300
    	connection=keep-alive
    	referer=http://localhost:8080/SellReport/?
    	content-type=application/x-www-form-urlencoded
    	content-length=42
    Début doGet
    Détail de l'entête
    	host=localhost:8080
    	user-agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
    	accept=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    	accept-language=fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    	accept-encoding=gzip,deflate
    	accept-charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7
    	keep-alive=300
    	connection=keep-alive
    	referer=http://localhost:8080/SellReport/?
    	content-type=application/x-www-form-urlencoded
    	content-length=42
    Début retour du PDF dans response
    Fin du retour du PDF dans response
    Ce qui me paraît bizarre c'est le double appel de la méthode doGet par IE

    Autre indice, dans mon code, je gère un certain nombre de cas où je ne peux pas générer le PDF. Dans ce cas, je renvoie du HTML avec le message d'erreur. Si dans mon formulaire je fais expres de rentrer des paramètres qui vont empêcher la génération du report, j'obtiens bien l'affichage du message dans IE que se soit avec POST ou GET.

    Au final, le seul truc que j'arrive pas à faire : c'est renvoyer un flux PDF si j'appelle la servlet par POST depuis IE !!!!!!

    Désolé d'avoir été si long mais je voulais vous donnez un max d'info dés le départ.

    Merci d'avance de votre aide

  2. #2
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Salut,
    Si j'ai bien compris ton pb ce lien devrait t'aider : http://www.herongyang.com/jsp/response_header_7.html
    +

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut
    Effectivement, il semble que celà soit un bug IE (étonnant non ).
    La solution est de rajouter le code suivant avant de renvoyer le PDF.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.setHeader("Content-disposition","attachment; filename=report.pdf");
    Le seul problème est que çà ouvre une fenêtre "Téléchargement de fichier" en plus pour l'utilisateur.

    Merci

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

Discussions similaires

  1. [XL-2002] Impression en PDF suite à sélection multiple dans zone de liste
    Par lumpys dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 20/10/2011, 21h15
  2. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  3. [PHP-JS] method post dans javascript
    Par shingara dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2005, 13h47
  4. bug Post dans un ADOQuery après un InsertRecord
    Par joebarthib dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/02/2005, 16h54

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