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 :

Pb d'affichage des images


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Par défaut Pb d'affichage des images
    Bonjour,

    je ne comprends pas pourquoi mes images ne s'affiche pas...

    Je stock des adresse d'image dans une base de donnée mais je n'arrive pas à les affichés.

    Si mes images son stocker a la racine du projet, je peux les afficher. Or mes images ne sont pas stocké forcement au même endroit que mes sources. Comment dois-je faire?

    J'utilise struts, ma jsp est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
    <logic:present name="listePhotos">
       <div class="cssLoad_imgLoad2">
          <img width="100%" height="100%" src="<%=request.getContextPath()%>/Images/inscription_fondW.png"/>
          <div class="cssLoad_loadAlbum2">
             <logic:iterate id="photos" name="listePhotos">
                <img width="100px" height="100px" src="<bean:write name="photos"/>"/>
             </logic:iterate>
          </div>
       </div>
    </logic:present>
    ...
    listePhotos est un ArrayList<String> qui contient mes chemins (absolu-> F:\rep1\fichier.jpg)

    Merci

  2. #2
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Ceci est tout à fait normal, le répertoire de stockage de tes images n'est pas accessible.Seul les images du répetoire applicatif son accessible via une url.


    Ce que tu peux faire pour les images stockées dans le répertoire "F:\rep1\"
    ou autre peut importe c'est de passe par une servlet qui va lire et renvoyer l'image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <logic:iterate id="photos" name="listePhotos">
    <img width="100px" height="100px" src="<%=request.getContextPath()%>/ServletLectriceIGM?id=photo"/>">
    </logic:iterate>
    Le sujet a déja été abordé dans plusieurs posts il me semble, si tu retrouve pas je te donnerais plus de détail sur la servlet en question

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Par défaut
    Merci pour cette précision.

    J'ai regarder mais je ne vois rien sur ce sujet, si tu peux m'éclaircir sur ce point ? je t'en serai très reconnaissant^^, car cela m'embête vraiment de devoir stoker mes images dans la même arborescence..

    Merci.

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Je l'ai pas trouvé tout de suite mais le voila ^^


    http://www.developpez.net/forums/d79...plication-jsp/

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Par défaut
    Merci, ça à l'air d'être ce qu'il me faut. Par contre je n'arrive pas à le faire fonctionner...

    J'ai crée ma classe ServletImg, mais par contre sa bloque quand je veux afficher mon image.

    Il y a des modification particulière à faire dans mes fichier de conf pour utiliser la servlet ? (web.xml, struts-config.xml ?)

    j'essaye de bricoler depuis 1h mais sans succès.

    Merci.

  6. #6
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Peux tu montrer le code de la servlet,le web.xml ou la servlet est déclaré avec son mapping

    et le lien que tu utilises pour accéder à l'image pour ton image.

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Par défaut
    En fait j'ai réussi a afficher mes images, je m'etais planter sur le ?imageName, ça marche nickel.

    Mais j'aime pas trop la façon dont j'ai modifier mon web.xml, je sais pas si c'est comme ça qu'il faut faire.

    Je ne sait pas trop quoi mettre dans la balise <url-pattern> de mon <servlet-mapping>

    la servlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    package commun;
     
    import java.io.DataOutput;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
     
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
     
    @SuppressWarnings("serial")
    public class ServletImg extends HttpServlet
    {	
        public void doPost(HttpServletRequest request, HttpServletResponse response)
    	{			
    		doGet(request, response);		
    	}
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    	{	
    		try 
    		{
     
    			DataOutput output = new DataOutputStream( response.getOutputStream() );
    			response.setContentType("image/jpeg");
     
    			String nomImage = request.getParameter("ImageName");
     
    			File file = null;
     
    			FileInputStream in = null;			
     
    			String filePath = Const.path_record+nomImage;
    			filePath = filePath.replace(java.io.File.separatorChar,'/');
     
     
    			file = new File(filePath);				
     
    			/*
    			 * Dans le cas ou l'image n'est pas présente dans le répertoire
    			 * On affiche une image par defaut 'Image Introuuvable'
    			 */
    			if(!file.exists())
    			{
    				//String path = this.getServletContext().getRealPath("")+ "/img/imageIntrouvable.jpg";
    				//file = new File(path);
    				throw new Exception();
    			}
     
    			in = new FileInputStream(file);
     
    			response.setContentLength((int)file.length());
     
    			byte buffer[]=new byte[4096];
    			int nbLecture;
     
    			while( (nbLecture = in.read(buffer)) != -1 )
    			{				
    				output.write(buffer,0,nbLecture);					
    			}	
     
    			in.close();
     
    		}
    		catch (IOException e)
    		{
    		    //logger.error("erreur lors du renvoie du fichier jpg",e);		
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}		
    	}	
    }
    web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
        Licensed to the Apache Software Foundation (ASF) under one or more
        contributor license agreements.  See the NOTICE file distributed with
        this work for additional information regarding copyright ownership.
        The ASF licenses this file to You under the Apache License, Version 2.0
        (the "License"); you may not use this file except in compliance with
        the License.  You may obtain a copy of the License at
     
             http://www.apache.org/licenses/LICENSE-2.0
     
        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.
    -->
     
      <!DOCTYPE web-app PUBLIC
    	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    	"http://java.sun.com/dtd/web-app_2_3.dtd">
     
    <web-app>
      <display-name>Struts Blank Application</display-name>
     
      <!-- Standard Action Servlet Configuration -->
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
     </servlet>
     
     <servlet>
     	<servlet-name>test</servlet-name>
        <servlet-class>commun.ServletImg</servlet-class>
     </servlet>
     
     
     
      <!-- Standard Action Servlet Mapping -->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
     
      <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
      </servlet-mapping>
     
     
      <!-- The Usual Welcome File List -->
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
     
    </web-app>
    apple dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img width="100px" height="100px" src="<%=request.getContextPath()+"/test?ImageName="%><bean:write name="photo"/>"/>
    De la manière dont c'est ecrit, ça fonctionne, mais si tu peux me donner ton avis sur le web.xml...

    Merci encore.

  8. #8
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Ton web.xml est tout à fait correct RAS ^^

    pour que cela soit plus joli tu peux éventuellement mettre /imageServlet à la place de /test

    Mais sinon rien à redire c'est normal que ta servlet y soit définie ainsi que le mapping sinon elle serait inaccessible.

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Par défaut
    Bon ok alors,

    Un grand merci a toi, pour tous ces conseils.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 12/06/2007, 17h02
  2. Réponses: 3
    Dernier message: 14/04/2006, 09h32
  3. [XML/CSS/XSL] Problème d'affichage des images "dynamiqu
    Par popol55 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/04/2006, 16h24
  4. Mauvais affichage des images et message d'erreur
    Par SLAM JACK dans le forum Langage
    Réponses: 3
    Dernier message: 29/03/2006, 18h11
  5. Priorité d'affichage des image de fond.
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 06/09/2005, 18h02

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