2017-07-15 3 views
-1

Tout d'abord, j'ai lu des tonnes de messages à ce sujet, mais je n'arrive pas à obtenir ce travail. Je suis vraiment nouveau sur jsp et les applications web. Tout ce que je veux faire est d'afficher une image simple. J'ai ce code dans le servlet:Erreur lors de l'affichage de l'image dans jsp

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    HttpSession sesion = request.getSession(); 
    String filePath = getServletContext().getRealPath("image.jpg"); 
    System.out.println(filePath); 
    sesion.setAttribute("image", filePath); 
    response.sendRedirect("products.jsp"); 
} 

Et ce code dans le jsp:

<img alt="logo" src="${image}"/> 

Et les dossiers dans mon application web sont ceci: folders image

Et enfin, quand ma page se charge, c'est ce que je reçois: image does not display

Je me demande ce que est l'erreur ici? Pourquoi est-ce si compliqué (peut-être que ce n'est pas le cas, mais j'ai vraiment essayé de nombreuses façons et non travaillé) pour afficher une image simple?

Merci d'avance pour votre aide!

PS: le dossier est correct, il imprime sans problème dans le println()

+0

Utilisez Firebug dans Firefox ou des outils de développement dans Chrome, faites un clic droit sur l'image et vérifier quelle est la valeur de l'attribut 'src'. – tima

Répondre

0

getRealPath() vous obtient le chemin réel dans le système de fichiers. Lorsque vous faites référence à une ressource (image, js, css) à l'intérieur d'un site Web, elle est supposée être accessible via le Web.

Si vous cliquez sur « Afficher le code source » dans votre navigateur, vous verrez probablement le chemin du système de fil dans la balise:

<img alt="logo" src="C:/whatever-your-path-is/image.jpg"/> 

Mais ce dont vous avez besoin est le chemin d'URL (complet ou relatif) du Ressource.

Essayez ceci:

sesion.setAttribute("image", "resources/images/image.jpg"); 
+0

Je me sens si bête en ce moment. Merci, c'est la réponse. –

+0

Haha, ne vous inquiétez pas, cela arrive aussi dans les meilleures familles. Une fois, j'ai eu une heure à me demander pourquoi "S" == myVar (quelles valeurs étaient "S") était faux. Heureux de vous aider – gmanjon