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
et mon JSP affiche: <img src="http://url_de_la_servlet_avec_les_param">
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();
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
Partager