Je suis un peu perdu dans mes codes. Je suis entrain de developer une page en JSP pour rechercher et afficher des images contenues dans une base de donnee en MySQL.
Je pense que mon code est correct le probleme arrive au niveau de l'affichage car au lieu d'afficher l'image, je recois ce genre d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
java.io.ByteArrayInputStream@62610b
La table Imagetb comporte 3 attributs et lattribut Image est e type BLOB.
La requete passe bien le seul problem c'est au niveau de l'affichage voici un bout de mon code.

Code : Search.java
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
 
try {
        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection(url+dbName,userName,password);
        System.out.println("Connected to the database");
        String  emp_name  = request.getParameter("emp_name");
 
        ArrayList al=null;
        ArrayList emp_list =new ArrayList();
        String query = "select * from imagetb where Title='"+emp_name+"'";
        System.out.println("query " + query);
         String imglen="";
        st = conn.createStatement();
        ResultSet  rs = st.executeQuery(query);
if(rs.next()){
            imglen = rs.getString(1);
            System.out.println(imglen.length());
 
}
 
        while(rs.next()){
            int len = imglen.length();
            byte[] rb = new byte [len];
            InputStream readImg = rs.getBinaryStream(3);
            int index=readImg.read(rb,0,len);
            System.out.println("index" + index);
            response.setContentType("image/jpg");
          al  = new ArrayList();
 
          al.add(rs.getString(1));
          al.add(rs.getString(2));
          al.add(rs.getBinaryStream(3));
 
                  System.out.println("al :: "+al);
          emp_list.add(al);
        }
 
        request.setAttribute("empList",emp_list);
 
             System.out.println("empList " + emp_list);
 
      //   out.println("emp_list " + emp_list);
 
        String nextJSP = "/viewSearch.jsp";
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
        dispatcher.forward(request,response);
        conn.close();
        System.out.println("Disconnected from database");
      } catch (Exception e) {
      e.printStackTrace();
      }
  }
Code : ViewSearch.JSP
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
 
 
<body>
 
<br><br><br><br><br><br>
<table width="700px" align="center" style="border:1px solid #000000;">
<tr>
<td colspan=8 align="center" style="background-color:ffeeff"><b>Image Record</b></td>
</tr>
<tr style="background-color:efefef;">
<td><b>Title</b></td>
<td><b>Image</b></td>
 
 
</tr>
<%
int count=0;
String color = "#F9EBB3";
 
 
if(request.getAttribute("empList")!=null)
{
ArrayList al = (ArrayList)request.getAttribute("empList");
Iterator itr = al.iterator();
 
 
while(itr.hasNext()){
 
if((count%2)==0){
color = "#eeffee";
}
else{
color = "#F9EBB3";
}
count++;
ArrayList empList = (ArrayList)itr.next();
           
%>
<tr style="background-color:<%=color%>;">
 
<td><%=empList.get(1)%></td>
<td><%=empList.get(2)%></td>
 
</tr>
<%
}
}
%>
<%
if(count==0){
%>
<tr>
<td colspan=8 align="center" style="background-color:eeffee"><b>No Record</b></td>
</tr>
<%
}
%>
</table>
</body>
Voici comment le result s'affiche

Title Image
lei java.io.ByteArrayInputStream@62610b

Merci pour votre aide.