我想从名为Image的表和名为image的列中检索类型为blob的图像,但在运行代码时,它会给出像这样的blob代码 -
“oracle.sql.BLOB@193242d”
请参阅我的代码获取并在jsp页面/浏览器上显示图像: -
ResultSet resultset =
statement.executeQuery("select * from image where id = '" + id + "'") ;
浏览器页面: -
<TABLE border="1">
<TR>
<TH>ID</TH>
<TH>picture</TH>
</TR>
<TR>
<TD> <%= resultset.getString(1) %> </TD>
<TD> <%= resultset.getBlob(2) %> </TD>
</TR>
</TABLE>
<BR>
答案 0 :(得分:1)
<强>首先强>
oracle.sql.BLOB@193242d
是toString()
方法的回复,而不是图片。
<强>第二强>
ResultSet resultset =
statement.executeQuery("select * from image where id = '" + id + "'") ;
为了SQL注入,请!
<强>最后强>
您无法在image
内回复text
数据!必须通过单独的cgi / servlet检索图像,其中内容类型设置为image
,因此适用于您的情况。
<TD> <%= resultset.getString(1) %> </TD>
<TD> <img src="/get_img?id="<%=id%>/> </TD>
稍后你需要一个servlet / cgi来响应图像为get_img
@WebServlet(name = "img", urlPatterns = {"/get_img"})
public class get_img extends HttpServlet{
doGet(HttpServletRequest req, HttpServletResponse resp){
...
resp.setContentType("image/jpg");//or image/whatever
try(ResultSet rs=ps.executeQuery()){//where ps is a PreparedStatement
//set the content length, and respond image data
//example: http://stackoverflow.com/a/4332975/5266804
}
...
}
}
答案 1 :(得分:0)
您可以创建一个servlet来提供来自DB的图像,请参阅How to retrieve images from database and place on JSP?
或者您可以将图片数据直接嵌入到图片代码的src
属性中:I want to retrieve image from mysql database using servlet and show that image along with that user details in table - 虽然这仅适用于小图片(图标等)。