Giả sử bạn có trang jsp nơi bạn muốn lấy hình ảnh. Bạn có thể làm như thế này để lấy bất kỳ hình ảnh nào từ cơ sở dữ liệu.
<% // dbconnection
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");
Statement statement = conn.createStatement() ;
resultSet=statement.executeQuery("select * from product") ;
%>
<!--this loop will get all images-->
<% while(resultSet.next()){ %>
<!--I'm using id column of table,you can use any coulmn which is unique to all row-->
Image - <img src="./Serv1?id=<%=resultSet.getString("id")%>" width="20%"/>
< p>Product <%=r.getInt(1)%>: <%=r.getString(2)%></p>
<%
}
}catch(Exception e){}
%>
Trong đoạn mã trên, đoạn mã này -> <img src="./Serv1?id=<%=resultSet.getString("id")%>" />
dòng quan trọng, ở đây bạn đang chuyển parameter
tức là:id
vào servlet để lấy image
cụ thể
Bây giờ, trong servlet
của bạn tức là ./Serv1
bạn phải truy xuất id
trong doGet
và chuyển truy vấn, cuối cùng gửi lại phản hồi tới trang jsp.
Blob image = null;
byte[] imgData = null;
String id= request.getParameter("id");//here you are getting id
int i;
ResultSet rs =null;
try {
//loading drivers for mysql
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");
String sql = "SELECT prodimg FROM product where id=?"; //here pass that id in query to get particular image
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
while (rs.next()) {
image = rs.getBlob("image");//getting image from database
imgData = image.getBytes(1,(int)image.length()); //extra info about image
}
response.setContentType("image/gif");//setting response type
OutputStream o = response.getOutputStream();
o.write(imgData);//sending the image to jsp page
o.flush();
o.close();
}
catch(Exception e)
{
e.printStackTrace();
}
Ngoài ra, đây không phải là mã hoàn chỉnh, hãy thực hiện các thay đổi theo yêu cầu của bạn. Ngoài ra, đừng quên thêm tệp của jar's file
Hi vọng điêu nay co ich!