前提使用JSP显示图片图片的存储位置在数据库中
方法用JDBC连接数据库从数据库读出数据用输出流输出到页面
<\%@ page contentType="text/html" language="java" \%>
<\%@ page buffer="kb" \%>
<\%@ page import="javasql*"\%>
<\%@ page import="javaio*"%>
<\% int len = * * ;
ClassforName("oraclejdbcdriverOracleDriver")newInstance();
String url="jdbc:oracle:thin:@::orafy"; //orcl为你的数据库的SID String user="lhzy";
String password="qwertyuiop";
Connection conn= DriverManagergetConnection(urluserpassword);
Statement stmt=conncreateStatement(ResultSetTYPE_SCROLL_SENSITIVEResultSetCONCUR_UPDATABLE);
String sql="select pic from test";
ResultSet rs=stmtexecuteQuery(sql); //定位到记录 rsnext();
InputStream in = rsgetBinaryStream();//①
responsereset(); //返回在流中被标记过的位置
responsesetContentType("image/jpg"); //或gif等 //得到输入流
OutputStream toClient = responsegetOutputStream();//②
byte[] P_Buf = new byte[len];
int i;
while ((i = inread(P_Buf)) != )
{
toClientwrite(P_Buf i);
} inclose();
toClientflush(); //强制清出缓沖区
toClientclose();//②
\%>
<\% rsclose();
stmtclose();
connclose(); \%>
需要注意的地方
需要注意的有两个方面①处的代码如注意的是在去记录前要先调用next()函数定位到第一个记录记录中列的索引是从开始的不是从开始 ②处如果出错检查是不是忘记写流的关闭了就是下面的那句原因可能是在其它的地方也调用了responsegetOutputStread()如果不关闭这个调用是不能成功的