JSP est essentiellement une technologie d'affichage conçue pour générer une sortie HTML.
Pour afficher une image au format HTML, vous avez besoin de l'élément HTML .
Pour qu'il positionne une image, vous devez spécifier son attribut src.
L'attribut
src 属性需要指向有效的 http:// doit pointer vers une URL http:// valide, donc pas vers un chemin du système de fichiers du disque local file://
car cela ne fonctionnera jamais lorsque le serveur et le client s'exécutent sur des machines physiquement différentes. marchera.
http://example.com/context/images/foo.png)或作为请求参数(例如 http://example.com/context/images?id=1Les URL d'image doivent inclure l'identifiant de l'image dans le chemin de la requête (par exemple
http://example.com/context/images/foo.png) ou en tant que paramètre de requête (par exemple http:// exemple.com/context/images?id=1).
/images/*Dans le monde JSP/Servlet, vous pouvez demander à un servlet d'écouter un modèle d'URL spécifique, tel que
/images/*, afin que vous puissiez exécuter du code Java sur une URL spécifique.
ServletContext#getMimeType()🎜 En fonction de l'extension du fichier image, vous pouvez étendre et/ou remplacer l'extension via 🎜 dans 🎜web.xml. 🎜
🎜
🎜C’est comme ça que ça devrait être. Il écrit quasiment le code lui-même. Commençons par HTML (en 🎜JSP🎜) : 🎜
Voyons ce qui se passe étape par étape :
.
src
.src
属性需要指向有效的http://
doit pointer vers une URLhttp://
valide, donc pas vers un chemin du système de fichiers du disque local file://http://example.com/context/images/foo.png
)或作为请求参数(例如http://example.com/context/images?id=1
Les URL d'image doivent inclure l'identifiant de l'image dans le chemin de la requête (par exemplehttp:// exemple.com/context/images?id=1
)./images/*
Dans le monde JSP/Servlet, vous pouvez demander à un servlet d'écouter un modèle d'URL spécifique, tel quebyte[]
或InputStream
的形式获取,JDBC API 提供ResultSet#getBytes()
和ResultSet#getBinaryStream()
为此,JPA API 提供@Lob
Les images sont des données binaires qui peuvent être obtenues à partir de la base de données sous la forme byte[] ou 李>InputStream, API JDBCbyte[]
或InputStream
写入响应的OutputStream
ResultSet#getBytes() et ResultSet#getBinaryStream() Pour ce faire, API JPAContent-Type
响应头也需要设置。您可以通过ServletContext#getMimeType()
基于图像文件扩展名,您可以通过web.xml 中的
扩展和/或覆盖该扩展名InputStream dans le OutputStream de la réponse (de la manière habituelle Java IO
.Le client doit être invité à gérer les données comme une image, donc au moins l'en-tête de réponse
ServletContext#getMimeType()🎜 En fonction de l'extension du fichier image, vous pouvez étendre et/ou remplacer l'extension via 🎜src
Content-Type doit également être défini. Vous pouvez obtenir le type correct viaEnsuite, définissez/créez un servlet qui écoute sur
/images/*, l'exemple suivant utilise JDBC simple pour faire le travail :
C'est tout. Si vous vous inquiétez des en-têtes HEAD et du cache et que vous répondez correctement à ces demandes, utilisez ce Modèle abstrait pour les servlets de ressources statiques.
Voir aussi :