Passer l'image dynamique de JSP avec servlet
J'ai une application de bureau qui crée un graphique 2D de l'objet, des bâtons dans un panneau et il dessine. Je suis en train de convertir cette application vers une page web à l'aide de servlets et de pages jsp. J'ai lu en ligne pour 2 jours et ne peut pas envelopper la tête autour de la façon de procéder, chaque exemple que je trouve semble laisser de côté un élément important. Je ne veux pas enregistrer l'image sur le fichier, car chaque utilisateur va obtenir une nouvelle/autre image.
Puis-je créer l'image dans la servlet avec les autres variables de réponse et les passer à la page jsp en même temps? Appelez ensuite l'image à l'aide de quelque chose comme ${response.image}.Cela semble être préférable, mais ne semble pas fonctionner.
Ou dois-je besoin d'un servlet juste pour l'image (ce qui semble plus difficile)? Aussi comment dois-je préparer la Graphics2D objet à utiliser comme une image dans le HTML?
- "Cela semble être préférable, mais ne semble pas fonctionner." Peut-être qu'il est juste fatigué. 🙁 Nous avons besoin de détails afin de vous aider. Un SSCCE de votre mieux serait de ne pas s'égarer, soit.
Vous devez vous connecter pour publier un commentaire.
Vous devez comprendre que c'est le navigateur qui a eu pour télécharger le individuelle images en fonction de l'Url de la
<img>
éléments que l'on retrouve dans l'extrait de code HTML et que c'est pas le serveur qui a associé l'image du contenu brut dans le code HTML d'une certaine manière.Vous avez vraiment besoin de créer une image autonome servlet pour ce qui est à l'écoute sur les Url de la
<img>
éléments. Vous pouvez faire la servlet réutilisables, et ce, en fournissant une image unique idenfitier à la demande de la chaîne de requête ou demande d'information de chemin au cours de générer le code HTML.E. g.
avec un
Voir aussi:
Je vais juste répondre sur la première partie de la question. Pour intégrer une image dans une page HTML, vous devez d'abord générer le code HTML de la page qui contiendra le texte suivant:
Ce balisage HTML sera envoyé dans la réponse à la demande, et le navigateur va l'analyser. Il envoie ensuite une deuxième requête HTTP à
somePath
, pour télécharger les octets de l'image.Donc, vous avez besoin d'un moyen de stocker l'image générée dans la mémoire et l'attente de la deuxième demande, et ensuite envoyer les octets de la réponse, ou si vous avez besoin de retarder la création de l'image jusqu'à ce que la deuxième demande. Je préfère la deuxième solution. Donc, le but du code de la manipulation de la première demande sera juste pour générer le balisage contenant un
img
tag pointant vers une URL. Cette URL doit contenir tous les paramètres nécessaires pour effectivement générer l'image.Pour la deuxième partie, vous aurez certainement à créer un BufferedImage exemple, attirer de son objet Graphics2D, et l'utilisation ImageIO à écrire ce BufferedImage à la réponse au flux de sortie.