pages jsp double traitement - Programmation
TomsGuide.com : 700 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
 




Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : pages jsp double traitement
 
Profil : IDNaute
Plus d'informations

Slt,
Je voudrais avoir des informations pour pouvoir faire du double traitement dans un site avec du jsp.
Mon problème est le suivant. Apres le clic sur un bouton, on doit tomber sur une page avec une barre d'avancement (le pourcentage) et faire le traitement derriere qui est lancé par un action.submit()..
Le probleme est que quand je fais suivre le clic sur le bouton par la page gerant la barre il ne veut plus faire le traitement qui suit..(le action.submit)
1 idée?

Liens sponsorisés


Inscrivez-vous ou connectez-vous pour masquer ceci.

http://127.0.0.1
Profil : IDNaute
Plus d'informations

Je ne vois pas l'intérêt de cette temporisation. Si c'est pour ralentir l'utilisateur (ce que je peux concevoir), il te suffit que ton formulaire contienne un appel à un javascript de cette manière:
<form onsubmit="return delay_it();">

et la fonction delay_it() ferait apparaitre ta barre de %age (div.style.display) et contiendrait quelque chose comme:
setTimeOut(eval('return true;'); 10000);


---------------
Réseau IRC Francophone
Les eggdrops en français
Tired, so tired...
Profil : IDNaute
Plus d'informations

Tu peux déclencher le traitement côté serveur (dans ta jsp qui utilisera la couche métier de ton appli).
L'appel peut se faire en javascript (XmlHttpRequest alias ajax pour les intimes).

Ce mécanisme te permettra également de réaliser un watchdog pour suivre l'état d'avancement de la tâche serveur et présenter au client une barre de défilement représentant la progression.

XmlHttpRequest te permet de faire des traitements asynchrones, donc de poster 2 threads de traitements.


Message édité par Djakar le 16-01-2007 à 23:21:29

---------------
Djakar
http://www.nova-id.com
Kit de survie sur les forums : Du bon sens, de la modération, du savoir vivre et une bonne dose d'humour
Profil : IDNaute
Plus d'informations

J'ai essayer de joindre les 2 solutions mais j'ai un autre souci..
J'ai mon tratement qui me renvoie du pdf et je voudrais savoir comment l'afficher en Pdf dans le browser...
J'utilise document.write mais je nai que du texte illisible bien sur..
Merci d'avance les gars

Tired, so tired...
Profil : IDNaute
Plus d'informations

Pour afficher un pdf dans le navigateur, il faut pouvoir lire les pdf, à la base. Donc tu devrais installer Adobe Acrobat Reader. Tu le trouveras sur le site d'adobe.


---------------
Djakar
http://www.nova-id.com
Kit de survie sur les forums : Du bon sens, de la modération, du savoir vivre et une bonne dose d'humour
Profil : IDNaute
Plus d'informations

d'habitude il n'ya pas de probleme, c'est a dire que mon navigateur est compatible mais je ne sais pas comment avec le XmlHttpRequest je peux afficher à l'ecran du pdf.
j'ai la variable "responseText contenant la chaine de caractere encodée representant le pdf.
Mais je fais:
document.open();
document.write(xhr_object.responseText)
document.close();

Et ca ne marche pas!!
En tout cas ca ne me donne pas du pdf à l'écran.

Tired, so tired...
Profil : IDNaute
Plus d'informations

Fait plutôt un redirect vers le fichier pdf dans ce cas.
Sinon, tu n'auras pas les entêtes pdf dans ton document.
Ton responseText pourrait contenir une url, et tu fais un location.href=xhr_object.responseText;


---------------
Djakar
http://www.nova-id.com
Kit de survie sur les forums : Du bon sens, de la modération, du savoir vivre et une bonne dose d'humour
Profil : IDNaute
Plus d'informations

Mais comment? peux tu m'expliquer cette redirection?

http://127.0.0.1
Profil : IDNaute
Plus d'informations

il te l'a donné!
document.location.href=xhr_object.responseText;


---------------
Réseau IRC Francophone
Les eggdrops en français
Profil : IDNaute
Plus d'informations

Le truc c'est que le fichier pdf il est pas en dur et il ne peut pas l'etre car c'est un site ou toutes les 2 secs il ya un rapport pdf a generer..
J'utilise un ByteOUtpuStream en java pour avoir le bytecode correspondant que j'écris dans response.getOutputStream..
Du coup je peux pas rediriger vers une url correspondant à un fichier pdf car il n'est que en mémoire..
Avec l'attente "bete" de l'utilisateur et sans le double traitement ca fonctionne et ca m'affiche le pdf dans la page mais sinon il veut pas..

Tired, so tired...
Profil : IDNaute
Plus d'informations

Tu peux rediriger vers une seconde page jsp qui écrit tout le contenu pdf dans le flux de retour.
Le truc, c'est qu'avec une requête ajax, tu ne peux plus changer le header de la page.
D'ailleurs, ajax n'est pas fait pour rempalcer une page entière, mais seulement des fragments de page.

En résumé, tu prépares le pdf en mémoire dans un buffer. Tu mémorises ce buffer dans la session.
Tu te sers de la réponse ajax pour donner l'url de la seconde page jsp et en javascript tu fais naviguer le client vers la seconde jsp qui balance le pdf.
Je fais exactement la même chose en C# lorsque je dois sortir une liste complexe en export pdf ou excel.


---------------
Djakar
http://www.nova-id.com
Kit de survie sur les forums : Du bon sens, de la modération, du savoir vivre et une bonne dose d'humour
Profil : IDNaute
Plus d'informations

Je suis désolé mais j'ai toujours du mal..
J'ai mis en session mon bufer..
Je le recupere dans la jsp..
Mais comment faire pour afficher le pdf, faut il mettre dans la balise <body>? ou alors il faut juste ecrire le flux et si oui Ou met on le content type : application/pdf?
Dans un fichier java je sais qu'on fait response.setContentType..
Mais pour la jsp je suis encore coincé;
merci pr vos aides encore davance, j'ai pas mal avancé!!

Tired, so tired...
Profil : IDNaute
Plus d'informations

Code :
  1. response.setContentType( "application/pdf" );
  2. response.setHeader("Content-Disposition","attachment; filename=\"document.pdf\"" );
  3. response.setHeader("Cache-Control", "no-cache" );
  4. ...


---------------
Djakar
http://www.nova-id.com
Kit de survie sur les forums : Du bon sens, de la modération, du savoir vivre et une bonne dose d'humour
Profil : IDNaute
Plus d'informations