Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1081 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Servlet-utiliser les plugins de l'explorateur pr lire des pdf, doc,...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Servlet-utiliser les plugins de l'explorateur pr lire des pdf, doc,...

n°237103
El_gringo
Posté le 30-10-2002 à 10:10:50  profilanswer
 

Heu, alors voila. Ms serlvet permet de consulter des fichiers qui sont sur le serveur.
Au départ le client choisi le fichier qu'il veut consulter.
 
Si le client veut visualiser une image, ça roule.
Voila comment je fais :
 
*Je construit et attache à la session un objet JPage qui contient le chemin du fichier à afficher ainsi que son type MIME (et tout plein d'autes trucs)
 
*Ma servlet fait appel à une jsp (page.jsp)
qui contient la ligne suivante :

<IMG src='<%=request.getContextPath()%>image.jsp'>


 
*Dans cette autre jsp qui est appelée, je récupère l'objet JPage depuis la session, sous la référence myJPage, je récupère le type MIME du fichier pointé par cette instance, je fais donc ceci:

Code :
  1. response.setContentType(myJPage.getOutFormatMIMEType ());

Cette classe JPage  contient également une méthode "write (OutputStream _out)" qui me permet d'envoyer directement au navigateur, des données. J'appelle donc cette méthode write, de cette manière :

Code :
  1. // écriture de l'image sur la sortie
  2.         ServletOutputStream binaryOutputStream = response.getOutputStream();
  3.         myJPage.write (binaryOutputStream);


 
Donc, ceci marche nickel avec des fichiers image.
Par contre, avec des pdf, doc,  ou autre, ça marche pas. c normal ? pourquoi ? ...Une solution peut être ? :D
Merci...


Message édité par El_gringo le 30-10-2002 à 10:13:52
mood
Publicité
Posté le 30-10-2002 à 10:10:50  profilanswer
 

n°237112
darklord
You're welcome
Posté le 30-10-2002 à 10:37:20  profilanswer
 

le mime type est correct pour ces fichiers? Et qd tu veux dire que ca marche pas ca veut dire quoi ? Page blanche?
 
y a des logs ?


---------------
Just because you feel good does not make you right
n°237113
El_gringo
Posté le 30-10-2002 à 10:38:52  profilanswer
 

Pas page blanche. Comme tu vois, ma 2e JSP est mise dans un tag HTML de type IMG
Donc ça m'affiche le petit truc d'IE pour une image qui peut pas s'afficher...

n°237117
_Mac_
Posté le 30-10-2002 à 10:42:46  profilanswer
 

El_Gringo a écrit a écrit :

Pas page blanche. Comme tu vois, ma 2e JSP est mise dans un tag HTML de type IMG
Donc ça m'affiche le petit truc d'IE pour une image qui peut pas s'afficher...




 
Ca semble logique tout ça... Tu veux que les docs se téléchargent tout seul ?

n°237118
El_gringo
Posté le 30-10-2002 à 10:44:21  profilanswer
 

Dans les logs de Tomcat rien
Mais je vais activer les logs de ma webapp en fait...
2 secondes.

n°237120
darklord
You're welcome
Posté le 30-10-2002 à 10:47:11  profilanswer
 

El_Gringo a écrit a écrit :

Pas page blanche. Comme tu vois, ma 2e JSP est mise dans un tag HTML de type IMG
Donc ça m'affiche le petit truc d'IE pour une image qui peut pas s'afficher...




 
 :heink:  :heink:  :heink:  
 
mais enfin tu mets un IMG SRC c'est normal qu'il cherche une image! Qu'est ce que tu nous fais là?  :??:


---------------
Just because you feel good does not make you right
n°237122
benou
Posté le 30-10-2002 à 10:48:54  profilanswer
 

ben pourquoi tu le mets dans un tag img si c'est un document PDF  :??:   :pt1cable:  
 
met un lien directement vers une servlet qui te balancera le fichier ...

n°237123
_Mac_
Posté le 30-10-2002 à 10:48:55  profilanswer
 

Pour ton truc, à mon avis, t'as pas trop le choix :
 
1. Soit tu ouvres un pop up qui appelle ton 2ème JSP, et donc ton doc s'ouvrira dans ce pop up et il ne se fermera pas automatiquement.
 
2. Soit tu utilises des frames, ou mieux un IFRAME qui pointe vers ton 2ème JSP.
 
T'as regardé ce que la balise <OBJECT> te permet de faire ?

n°237124
benou
Posté le 30-10-2002 à 10:51:05  profilanswer
 

oui mais pkoi ne pas balancer le document directement ?

n°237128
El_gringo
Posté le 30-10-2002 à 10:57:01  profilanswer
 

DarkLord a écrit a écrit :

 
 
 :heink:  :heink:  :heink:  
 
mais enfin tu mets un IMG SRC c'est normal qu'il cherche une image! Qu'est ce que tu nous fais là?  :??:  




 
c une bidouille que j'ai lue, et qui m'arrange assez. Ma webapp devrait pouvoir afficher indifférement, des images ou des fichiers natifs (doc, pdf, ...).
J'ai vu dans une autre web app (pas faite en Java, ms en C++) qu'il utilise cette méthode...

mood
Publicité
Posté le 30-10-2002 à 10:57:01  profilanswer
 

n°237129
darklord
You're welcome
Posté le 30-10-2002 à 10:58:00  profilanswer
 

ouais bin oublie ce que tu as vu parce que ce que tu fais là est totalement incorrect et hors normes.


---------------
Just because you feel good does not make you right
n°237132
El_gringo
Posté le 30-10-2002 à 11:01:59  profilanswer
 

_Mac_ a écrit a écrit :

Pour ton truc, à mon avis, t'as pas trop le choix :
 
1. Soit tu ouvres un pop up qui appelle ton 2ème JSP, et donc ton doc s'ouvrira dans ce pop up et il ne se fermera pas automatiquement.
 
2. Soit tu utilises des frames, ou mieux un IFRAME qui pointe vers ton 2ème JSP.
 
T'as regardé ce que la balise <OBJECT> te permet de faire ?




 
<Object> ça pourrait être bien pratique, mais ça nécessite l'url du fichier. Ds mon cas, ce fichier n'est pas accessible par URL.
Mais en fait... j'vais tenter un piti truc...

n°237133
El_gringo
Posté le 30-10-2002 à 11:02:41  profilanswer
 

benou a écrit a écrit :

oui mais pkoi ne pas balancer le document directement ?




 
J'aurai aimé rester générique, que ça soit une image ou un document que j'ai à afficher...

n°237135
_Mac_
Posté le 30-10-2002 à 11:03:46  profilanswer
 

El_Gringo a écrit a écrit :

 
 
<Object> ça pourrait être bien pratique, mais ça nécessite l'url du fichier. Ds mon cas, ce fichier n'est pas accessible par URL.
Mais en fait... j'vais tenter un piti truc...




 
Je comprends pas : l'attribut src de la balise <IMG> contient bien une URL, non ? C'est pareil !

n°237138
El_gringo
Posté le 30-10-2002 à 11:06:45  profilanswer
 

_Mac_ a écrit a écrit :

 
 
Je comprends pas : l'attribut src de la balise <IMG> contient bien une URL, non ? C'est pareil !




 
ouais ouais, t'as raison. c ce que je suis en trani d'essayer...

n°237172
El_gringo
Posté le 30-10-2002 à 11:48:24  profilanswer
 

Bon, ben en fait, vs aviez raison, je me prenais la tête pour rien.
Je balance directement le contenu du fichier sur la sortie dans une JSP, ça marche sans pb.
Merci...

n°237174
darklord
You're welcome
Posté le 30-10-2002 à 11:52:01  profilanswer
 

El_Gringo a écrit a écrit :

Bon, ben en fait, vs aviez raison, je me prenais la tête pour rien.
Je balance directement le contenu du fichier sur la sortie dans une JSP, ça marche sans pb.
Merci...




 
sans blague  :heink:  
 
 :lol:


---------------
Just because you feel good does not make you right
n°237177
El_gringo
Posté le 30-10-2002 à 11:57:08  profilanswer
 

DarkLord a écrit a écrit :

 
 
sans blague  :heink:  
 
 :lol:  




 
Ms en fait g juste un petit pb encore :
ça marche, ms dans les logs de Tomcat, y a une exception :

java.lang.IllegalStateException: getOutputStream() has already been called for this response


 
C pas tellement étonnant, vu que dans ma JSP, je fais

Code :
  1. // écriture de l'image sur la sortie
  2.         ServletOutputStream binaryOutputStream = response.getOutputStream();
  3.         pageToPrint.Write (binaryOutputStream);


 
..alors que dans une JSP, "out" existant par défaut, c'est LA sortie de la JSP.
Mais il me semble que je peux pas écrire les données de mon PDF (ou autre) dans l'instance "out" d'un JSP, car c'est un "Writer", uniquement pour du texte.
Comment je peux faire pour obtenir l'OutputStream de ma JSP sans avoir cette exception ?

n°237181
darklord
You're welcome
Posté le 30-10-2002 à 12:08:03  profilanswer
 

bin tu dois pas initier l'écriture du pdf depuis ta jsp mais dans la servlet ...
 
Une JSP c'est fait pour afficher un document HTML. Si tu veux que le résultat d'une requete ait pour but de renvoyer un doc pdf au client tu ne dois pas "de facto" utiliser une JSP.
 
Mauvaise utilisation de l'outil ...


---------------
Just because you feel good does not make you right
n°237183
El_gringo
Posté le 30-10-2002 à 12:16:17  profilanswer
 

DarkLord a écrit a écrit :

bin tu dois pas initier l'écriture du pdf depuis ta jsp mais dans la servlet ...
 
Une JSP c'est fait pour afficher un document HTML. Si tu veux que le résultat d'une requete ait pour but de renvoyer un doc pdf au client tu ne dois pas "de facto" utiliser une JSP.
 
Mauvaise utilisation de l'outil ...




 
Ha...ça m'arrange pas du tout ça !
On peut faire un Forward à partir d'une servlet sur une servlet ?

n°237184
darklord
You're welcome
Posté le 30-10-2002 à 12:20:28  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Ha...ça m'arrange pas du tout ça !
On peut faire un Forward à partir d'une servlet sur une servlet ?




 
bin évidemment :o


---------------
Just because you feel good does not make you right
n°237243
benou
Posté le 30-10-2002 à 14:17:13  profilanswer
 

DarkLord a écrit a écrit :

bin tu dois pas initier l'écriture du pdf depuis ta jsp mais dans la servlet ...
Une JSP c'est fait pour afficher un document HTML. Si tu veux que le résultat d'une requete ait pour but de renvoyer un doc pdf au client tu ne dois pas "de facto" utiliser une JSP.
Mauvaise utilisation de l'outil ...




ouais !
 
pour compléter :  
 
la méthode getWriter de Response est automatiquement appelée à l'eexecution d'une JSP. C'est pour ca qu'il gueule quand tu essaye d'appeler un OutputStream car seul 1 des 2 méthodes (getWriter ou getOutputStream) peut être appelée.
 
C'est d'ailleur aussi pour ca que tu ne peux pas faire de dispatch à l'intérieur d'une JSP car la méthode getDispatcher ne peut être appelée après l'appel à une de ces deux méthodes.
 
 
et puis en plus, les JSP c'est fait opur formater du text. Donc comme toi tu veux pouvoir renvoyer n'imoprte quoi, il faut que ce soit une servlet qui gère l'envoie du fichier et qui donnera éventuellement la main à une jsp dans le cas d'un fichier text à formater.

n°237246
benou
Posté le 30-10-2002 à 14:18:33  profilanswer
 

El_Gringo a écrit ca (entre autre) a écrit :

 
ça marche, ms dans les logs de Tomcat, y a une exception



je suis déjà vachement étonné que ca marche ...  :??:

n°237249
El_gringo
Posté le 30-10-2002 à 14:20:51  profilanswer
 

benou a écrit a écrit :

 
je suis déjà vachement étonné que ca marche ...  :??:  




 
...et pourtant !
La servlet pr remplacer cette JSP mal utilisée, c une servlet HTTP, non ?

n°237254
benou
Posté le 30-10-2002 à 14:25:27  profilanswer
 

El_Gringo a écrit a écrit :

 
...et pourtant !
La servlet pr remplacer cette JSP mal utilisée, c une servlet HTTP, non ?




bha oui évidement, par quel protocole veux tu y accéder sinon ?

n°237332
Meliok
Posté le 30-10-2002 à 15:46:00  profilanswer
 

benou a écrit a écrit :

 
bha oui évidement, par quel protocole veux tu y accéder sinon ?




 
Je crois que ct pas la question benou....
Moi , g compris qu'il voulait savoir si il devait deriver sa servlet de HttpServlet ou de GenericServlet. En l'occurence, GenericServlet conviendrait aussi bien que l'autre....


---------------
Eos 20d(kit) + 70-200 F4L + 50 F1.4 + 420 EX Powered®
n°237350
El_gringo
Posté le 30-10-2002 à 15:55:24  profilanswer
 

Meliok a écrit a écrit :

 
 
Je crois que ct pas la question benou....
Moi , g compris qu'il voulait savoir si il devait deriver sa servlet de HttpServlet ou de GenericServlet. En l'occurence, GenericServlet conviendrait aussi bien que l'autre....




 
En effet, c'était bien ça la question.
Du coup j'étend HttpServlet...
Bon bah voila, j'ai fait une servlet à la place de cette JSP, et c'est tout nickel, c génial.
Maintenant, ma web-app est capable d'afficher des fichiers word, pdf, xls, ppt, mpeg, mov, toutes sortes d'images. c génial !
Merci à ceux qui m'ont aidé. :hello:


Message édité par El_gringo le 30-10-2002 à 15:55:53
n°237364
benou
Posté le 30-10-2002 à 16:05:22  profilanswer
 

Meliok a écrit a écrit :

 
Je crois que ct pas la question benou....
Moi , g compris qu'il voulait savoir si il devait deriver sa servlet de HttpServlet ou de GenericServlet. En l'occurence, GenericServlet conviendrait aussi bien que l'autre....




:jap: ok j'avais pas capté.
 
mais si je me trompe pas, GenericServlet implémente Servlet et pas HttpServlet => ma remarque reste la même
 
et puis un petit coup de javadoc :  

Citation :

Defines a generic, protocol-independent servlet. To write an HTTP servlet for use on the Web, extend HttpServlet instead.

n°237366
benou
Posté le 30-10-2002 à 16:06:56  profilanswer
 

El_Gringo a écrit a écrit :

 
Maintenant, ma web-app est capable d'afficher des fichiers word, pdf, xls, ppt, mpeg, mov, toutes sortes d'images. c génial !



cool ! :)
 
j'ai juste une ptite question : pkoi t'as pas mit des accès directs à tes fichiers : la plupart des moteurs de servlet (genre tomcat) font ca tout seul ...


Message édité par benou le 30-10-2002 à 16:07:06
n°237420
El_gringo
Posté le 30-10-2002 à 17:01:57  profilanswer
 

benou a écrit a écrit :

 
cool ! :)
 
j'ai juste une ptite question : pkoi t'as pas mit des accès directs à tes fichiers : la plupart des moteurs de servlet (genre tomcat) font ca tout seul ...




 
2 raisons :  
 
-En fait à la base mon truc, c'est surtout pour afficher des images. J'utilise JAI, et je permet à l'utilisateur de redimentionner une image, la faire pivoter, ...
Sans changer les données du fichier, ni écrire de fichier temporaire. Tout se fait en mémoire, c pratique.
-Pour une question de sécurité, le répertoire de stockage des images ne doit pas être accessible par URL.

n°237435
benou
Posté le 30-10-2002 à 17:09:33  profilanswer
 

ko, c'était juste pour être sur que tu réinventais pas la roue :)

n°237442
El_gringo
Posté le 30-10-2002 à 17:15:16  profilanswer
 

benou a écrit a écrit :

ko, c'était juste pour être sur que tu réinventais pas la roue :)




 
Merci de t'en soucier.
 
J'ai bien pensé à mettre simplement l'url de mes fichiers avant...
Ms j'aime bien la méthode que j'utilise, j'trouve ça classe  :sol:

n°237799
darklord
You're welcome
Posté le 31-10-2002 à 10:52:22  profilanswer
 

El_Gringo a écrit a écrit :

 
 j'trouve ça classe  :sol:  




 
 :lol: le jeu de mot à deux balles  :lol:  
 
 :ange:


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Servlet-utiliser les plugins de l'explorateur pr lire des pdf, doc,...

 

Sujets relatifs
Comment utiliser un controle ActiveX en c++ !De l'art d'utiliser le break
[VB.NET] SVP, Comment utiliser le fichier app.config?[servlet]session - get et setAttribute
Quel logiciel utiliser pour faire du Turbo pascal sous XP ?[servlet]Récupérer la valeur d'un submit "image" dans ma servlet
[Bean] ArrayList passe pas de servlet à JSPlire une url en js...[done]
ce qu'il faut utiliser pour faire du flash?[C] - fichiers et fgets (lire directement une ligne plus loins ....)
Plus de sujets relatifs à : Servlet-utiliser les plugins de l'explorateur pr lire des pdf, doc,...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR