Afficher une image en src sur JSP depuis une servlet
je veux appeler une image blob depuis ma bdd pour cela j'ai une servlet qui extrait l'image et je veux l'appeler dans ma jsp par la balise <img src=""/> mais rien ne s'affiche
DisplayBlobServlet.java
Code:
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
|
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
HttpSession session = request.getSession();
etudiant s = (etudiant)session.getAttribute("bachelier");
String query = "select photo from etudiant where bac='"+s.getBac()+"'";
ServletOutputStream out = response.getOutputStream();
try {
stat = cnx.prepareStatement(query);
rslt = stat.executeQuery(query);
if (rslt.next()) {
photo = rslt.getBlob(1);
} else {
response.setContentType("text/html");
out.println("<body><h1>pas de photo</h1></body></html>");
return;
}
response.setContentType("image/jpg");
try {
in = photo.getBinaryStream();
} catch (SQLException ex) {
Logger.getLogger(DisplayBlobServlet.class.getName()).log(Level.SEVERE, null, ex);
}
int length = (int) photo.length();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
while ((length = in.read(buffer)) != -1) {
System.out.println("writing " + length + " bytes");
out.write(buffer, 0, length);
}
in.close();
out.flush();
} catch (SQLException e) {
response.setContentType("text/html");
out.println("<html><head><title>Error: Person Photo</title></head>");
out.println("<body><h1>Error=" + e.getMessage() + "</h1></body></html>");
return;
} finally {
try {
rslt.close();
stat.close();
cnx.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} |
jsp
Code:
1 2 3
|
<legend>Photo</legend>
<img class="photo" id="idPhoto" src="/prjBrsCom/DisplayBlobServlet" alt="votre image"/> |
je ne reçoit que le contenu de alt: "votre image"