0
我只是試圖從數據庫中檢索圖像並顯示它。我寫了下面的代碼:從mysql數據庫中恢復圖像並將其顯示在html頁面中
RetreiveImage.java
import myconnection.ConnetionDefault;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class RetreiveImage extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
PrintWriter out = response.getWriter();
Connection con=null;
String id=request.getParameter("id");
try{
con=ConnetionDefault.getConnection();
ResultSet results = null;
PreparedStatement ps = null;
ps = con.prepareStatement("select picture from pic_229084519 where pic_id=?");
ps.setString(1,id);
results = ps.executeQuery();
String imgLen="";
if(results.next()){
imgLen = results.getString(1);
System.out.println(imgLen.length());
int len = imgLen.length();
byte [] rb = new byte[len];
InputStream readImg = results.getBinaryStream(1);
int index=readImg.read(rb, 0, len);
System.out.println("index"+index);
ConnetionDefault.close(results,ps,con);
response.reset();
response.setContentType("image/jpg");
response.getOutputStream().write(rb,0,len);
response.getOutputStream().flush();
RequestDispatcher rd=request.getRequestDispatcher("gg.html");
rd.forward(request,response);
}
} catch (Exception e){
e.printStackTrace();
}
}
}
retImagel.html
<html>
<head>
<title>Login</title>
</head>
<body bgcolor="Gold">
<center>
<form action="ret.pic">
<table>
<tr><th>Namme</th><td><input type="text" name="id" size="3"/></td><td></td>
<td><input type="submit" value="Get"></td><td><input type="reset" value="Cancel"/></td></tr>
</table>
</form>
</center>
</body>
</html>
gg.html
<html>
<head>
<title>Login</title>
</head>
<body bgcolor="Gold">
<img src="/ret.pic?id=${id}"/>
</center>
</body>
</html>
我的問題是在默認響應頁面的顯示圖像。但我希望它在gg.html我要去錯了..請幫助我。
感謝,但我不是讓烏爾點..請你也會寫實際的代碼? –