Hallo,
ich lese via Servlet - Tomcat - MySQL Daten aus einer Datenbank aus.
Darunter sind auch pro Datensatz ein Bild als LongBlob hinterlegt.
Ich versuche nun alle Datensätze inklusive Bild via Servlet auszugeben. Aber das funktioniert nicht.
Es wird nicht mal das Servlet angesprochen. RetriveImage.
Oder gibt es eine andere Möglichkeit aus einer Datenbank Text und Bild anzuzeigen. Mehrere.
gruß
ich lese via Servlet - Tomcat - MySQL Daten aus einer Datenbank aus.
Darunter sind auch pro Datensatz ein Bild als LongBlob hinterlegt.
Ich versuche nun alle Datensätze inklusive Bild via Servlet auszugeben. Aber das funktioniert nicht.
Java:
while (rs.next()) {
String id = rs.getString("id");
String titel = rs.getString("titel");
java.sql.Timestamp timestamp = rs.getTimestamp("erstelltam");
SimpleDateFormat sp = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm");
Date erstellt = new Date(timestamp.getTime());
sb.append("<td align='center'><a href='/AbschlussArbeit/ArtikelServlet?id=" + id
+ "'><img src='" + "RetriveImage?" + id + "' width='204' height='190'></a><br> Erstellt am:"
+ sp.format(erstellt) + "<br><font-size=12>" + titel + "</font></td>");
}
Java:
public class RetriveImage extends HttpServlet {
Connection con;
CallableStatement stat;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request
* servlet request
* @param response
* servlet response
* @throws ServletException
* if a servlet-specific error occurs
* @throws IOException
* if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.setContentType("text/html;charset=UTF-8");
response.setContentType("image/jpeg");
// PrintWriter out = response.getWriter();
Blob ePhoto = null;
byte[] rawBytes = null;
ServletOutputStream out = response.getOutputStream();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
StringBuffer selectStatement = new StringBuffer();
try {
/*
* TODO output your page here. You may use following sample code.
*/
// byte[] rawBytes = null;
String id = request.getQueryString();
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/TestDB");
// This works too
// Context envCtx = (Context) ctx.lookup("java:comp/env");
// DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB");
conn = ds.getConnection();
st = conn.createStatement();
selectStatement.append("SELECT * FROM artikel WHERE id="+id);
rs = st.executeQuery(selectStatement.toString());
rs.next();
rawBytes = rs.getBytes(1);
out.write(rawBytes);
out.flush();
stat.close();
} catch (Exception ex) {
out.println(ex.getMessage());
} finally {
try {
con.close();
out.close();
} catch (Exception ex) {
}
}
}
}
Es wird nicht mal das Servlet angesprochen. RetriveImage.
Oder gibt es eine andere Möglichkeit aus einer Datenbank Text und Bild anzuzeigen. Mehrere.
gruß