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 :

Affichage d'un tableau d'image en Servlet/JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut Affichage d'un tableau d'image en Servlet/JSP
    Bonjour à tous,

    J'ai un petit soucis pour l'affichage d'un tableau d'image renvoyé par un servlet dans une JSP.

    Lorsqu'il s'agit d'une seule image, pas de soucis le doPost() de ma servlet se présente sous la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    byte[] imageBytes = getMoleculeImage();
    response.setContentType("image/jpeg");
    response.setContentLength(imageBytes.length);
    OutputStream out = response.getOutputStream();
    out.write(imageBytes);
    out.flush();
    out.close();
    et mon JSP affiche: <img src="http://url_de_la_servlet_avec_les_param">

    Seulement voilà, je dois afficher un tableau d'image...

    Plusieurs solutions solutions s'offrent à moi et je n'arrive pas à trouver la solution optimale et de ce fait je sollicite votre aide.

    Solution1: appeler autant de fois le servlet pour une image, qu'il y a d'image
    avantage: transit de petits objets; pas d'écriture de l'image sur le client
    inconvénient: appels à la servlet qui peuvent être nombreux

    Solution 2: Renvoyer une grosse image concaténant toutes les images et afficher avec un découpage en javascript/css ou jsp
    avantage: un seul appel; pas d'écriture de fichier à faire sur le client
    inconvénient: un gros objet transit, mais une seule fois; nécessite plus de développement pour découper cette seule image

    Solution 3: Renvoyer une liste de tableau de byte[] représentant la liste des images, cette liste est récupérée par le JSP qui va construire le BufferedImage et écrire les image avec ImageIO.write
    avantage: simple à mettre en place; un seul transit
    inconvénient: le client doit construire les fichiers en local (plus de travail, présence de fichier à supprimer)

    Quelle serait pour vous la solution la plus logique et la plus efficace que vous choisiriez? Pourquoi?

    En connaissez vous une autre?

    Merci d'avance pour votre aide

    Amicalement

    Gojira

  2. #2
    Membre du Club Avatar de gojira
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Ayant continué à me pencher sur le sujet, j'ai trouvé une solution:
    Les images sont écrites physiquement sur le serveur par le servlet (une bonne fois pour toute) si l'image n'existe pas déjà. Et le servlet renvoie l'URL de l'image que la JSP s'affiche.

    Mais je rencontre un problème actuellement:
    2010-08-11 15:33:15,000 INFO http-8080-Processor25 MyServlet:791 - D:\Apache\Tomcat55\webapps\MyAppli\image\fichier\1095236.jpg
    2010-08-11 15:33:15,000 INFO http-8080-Processor25 MyServlet:794 - http://localhost:8080/MyAppli/image/fichier/1095236.jpg
    2010-08-11 15:33:58,921 WARN http-8080-Processor24 com.truc.SecurityFilter:101 - security check failed for user: uri=[/image/fichier/1095228.jpg], params={ }
    2010-08-11 15:33:58,921 ERROR http-8080-Processor24 org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/MyAppli].[default]:253 - "Servlet.service()" pour la servlet default a généré une exception
    com.truc.SecurityException: Unauthorized access. Please login with an authorized user.
    at com.truc.SecurityFilter.doFilter(SecurityFilter.java:90)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:619)
    Niveau sécurité, vu que je suis en dehors du WEB-INF, que dois je faire pour rendre ces images accessible? Problème de PATH? D'URL?

    Merci d'avance pour votre aide.

    Gojira

Discussions similaires

  1. Réponses: 28
    Dernier message: 18/05/2010, 15h14
  2. Servlet/JSP affichage d'une image
    Par simovic dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/01/2010, 12h41
  3. image chemin <> servlet jsp
    Par totoche dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 12/09/2008, 18h09
  4. tableau d'images affichées via une servlet
    Par lemfi dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 29/08/2008, 08h45
  5. xml-xsl-fo : probleme d'affichage d'un tableau
    Par clindoeil dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 12/12/2003, 12h46

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