I want to display image in my JSP retrieved out of Database. Now, after a lot of research on internet, I figured out this code.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>View Item</title>
</head>
<body>
<center>
<h1>View Item</h1>
<%
Connection con = DefaultConnection.establishSqlConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Items WHERE ItemCode='"+request.getParameter("itemCode")+"'");
Blob image = rs.getBlob("ItemImage");
InputStream imageInputStream = image.getBinaryStream();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int len=0;
%>
<form action="addItem.jsp" method="post">
<table>
<tr><%=rs.getInt("ItemCode")%></tr>
<tr><%=rs.getString("ItemName")%></tr>
<tr><%while ((len=imageInputStream.read(buffer)) != -1) {
out.write(buffer, 0, len);
}%></tr>
</table>
</form>
</center>
</body>
</html>
Now my problem is that everywhere I saw, out.write() method is used with (byte[], int, int) arguments. But my NetBeans refuses to take those arguments. And API says that out.write() only supports (char[], int, int) arguments. I don't know if this way is right or not.
Please tell if I'm doing something wrong or if there is some other absolute method of doing this.