Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher une image dans une page JSP

    23 août 2013 à 15:08:05

    Bonjour, 

    Je souhaite afficher une image dans une page JSP, l'image s'affiche bien mais elle s'affiche seule sur une page blanche (tout le reste du html n'apparait plus) :(

    Voici le petit bout de code pour afficher l'image : (il doit sûrement il y avoir une erreur de syntaxe..)

    out.print("<img class='icon' src='");
    
    getServletContext().getRequestDispatcher("/android/DisplayImage").forward(request, response);
    
    out.print("' alt='icon' /> &nbsp;");


    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      23 août 2013 à 15:22:48

      C'est normal vu que tu ne ferme jamais t'as balise img vu que tu fais le forward avant.
      • Partager sur Facebook
      • Partager sur Twitter
        23 août 2013 à 15:27:04

        Ah ok, aurais-tu une solution pour cela sachant que la servlet DisplayImage permet d'afficher l'image ?

        (et je fais un forward pour passer en paramètre l'image en octets à afficher qui est dans les attributs de la requête)

        • Partager sur Facebook
        • Partager sur Twitter
          23 août 2013 à 15:41:17

          Mettre les balises img dans DisplayImage?
          • Partager sur Facebook
          • Partager sur Twitter
            23 août 2013 à 15:55:30

            Je viens d'essayer et ça me met : "getoutputstream has already been called"

            Parce que du coup j'appelle getWriter() et getOutputStream() et on a pas le droit d'appeler les 2 :(

            edit : je me suis débrouillé pour mettre la balise image dans DisplayImage mais ça fait pareil (image dans une page blanche)

            -
            Edité par pandora27 23 août 2013 à 16:08:20

            • Partager sur Facebook
            • Partager sur Twitter
              23 août 2013 à 16:09:29

              Met nous les codes de tes deux classes.
              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2013 à 16:30:35

                Oui voici la fonction de la 1ère classe

                private void display(PrintWriter out, Entity app, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
                
                
                        Text description = (Text) app.getProperty("resume");
                
                        out.println("<div class='appli'>");
                        out.println("<div class='category' id='description'>");
                
                        out.println("<h4 class='title'>");
                
                        Blob image = (Blob) app.getProperty("icon");
                
                        request.setAttribute("icone", image);
                
                        out.print("<img class='icon' src='");
                
                        getServletContext().getRequestDispatcher("/android/DisplayImage").forward(request, response);
                
                        out.print("' alt='icon' /> &nbsp;");
                
                        out.println((String) app.getProperty("name"));
                
                        out.println("</h4>");
                
                        out.println("<h4>Description</h4>");
                
                
                        out.println("<p id='p_description'>");
                        out.println("<br/>");
                        out.println(replaceNewlineCharacters(description));
                        out.println("<br/><br/>");
                        out.println("</p>");
                        out.println("</div>");
                
                
                
                        out.println("</div>");
                
                
                    }

                Et la classe DisplayImage :

                public class DisplayImageServlet extends HttpServlet {
                
                    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                            throws ServletException, IOException {
                        String id = request.getParameter("id");
                        if (request.getAttribute("icone") != null) {
                
                            response.setContentType("image/jpeg");
                
                            Blob image = (Blob) request.getAttribute("icone");
                            byte[] imgData = image.getBytes();
                            response.setContentLength(imgData.length);
                            try (OutputStream o = response.getOutputStream()) {
                                o.write(imgData);
                                o.flush();
                            }
                            response.setContentType("text/html");
                        }
                
                    }
                }
                



                • Partager sur Facebook
                • Partager sur Twitter
                  19 janvier 2019 à 13:18:49

                  pandora27 a écrit:

                  Oui voici la fonction de la 1ère classe

                  private void display(PrintWriter out, Entity app, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
                  
                  
                          Text description = (Text) app.getProperty("resume");
                  
                          out.println("<div class='appli'>");
                          out.println("<div class='category' id='description'>");
                  
                          out.println("<h4 class='title'>");
                  
                          Blob image = (Blob) app.getProperty("icon");
                  
                          request.setAttribute("icone", image);
                  
                          out.print("<img class='icon' src='");
                  
                          getServletContext().getRequestDispatcher("/android/DisplayImage").forward(request, response);
                  
                          out.print("' alt='icon' /> &nbsp;");
                  
                          out.println((String) app.getProperty("name"));
                  
                          out.println("</h4>");
                  
                          out.println("<h4>Description</h4>");
                  
                  
                          out.println("<p id='p_description'>");
                          out.println("<br/>");
                          out.println(replaceNewlineCharacters(description));
                          out.println("<br/><br/>");
                          out.println("</p>");
                          out.println("</div>");
                  
                  
                  
                          out.println("</div>");
                  
                  
                      }

                  Et la classe DisplayImage :

                  public class DisplayImageServlet extends HttpServlet {
                  
                      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                              throws ServletException, IOException {
                          String id = request.getParameter("id");
                          if (request.getAttribute("icone") != null) {
                  
                              response.setContentType("image/jpeg");
                  
                              Blob image = (Blob) request.getAttribute("icone");
                              byte[] imgData = image.getBytes();
                              response.setContentLength(imgData.length);
                              try (OutputStream o = response.getOutputStream()) {
                                  o.write(imgData);
                                  o.flush();
                              }
                              response.setContentType("text/html");
                          }
                  
                      }
                  }
                  





                  • Partager sur Facebook
                  • Partager sur Twitter

                  Afficher une image dans une page JSP

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown