|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),js|办理|成绩|显现 条件:利用JSP显现图片。图片的存储地位在数据库中。
办法:用JDBC毗连数据库,从数据库读出数据,用输入流输入到页面。
<\%@pagecontentType="text/html"language="java"\%>
<\%@pagebuffer="16kb"\%>
<\%@pageimport="java.sql.*"\%>
<\%@pageimport="java.io.*"%>
<\%intlen=10*1024*1024;
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Stringurl="jdbc:oracle:thin:@10.168.8.99:1521:orafy";//orcl为你的数据库的SIDStringuser="lhzy";
Stringpassword="qwertyuiop";
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Stringsql="selectpicfromtest";
ResultSetrs=stmt.executeQuery(sql);//定位到纪录rs.next();
InputStreamin=rs.getBinaryStream(1);//①
response.reset();//前往在流中被标志过的地位
response.setContentType("image/jpg");//或gif等//失掉输出流
OutputStreamtoClient=response.getOutputStream();//②
byte[]P_Buf=newbyte[len];
inti;
while((i=in.read(P_Buf))!=-1)
{
toClient.write(P_Buf,0,i);
}in.close();
toClient.flush();//强迫清出缓冲区
toClient.close();//②
\%>
<\%rs.close();
stmt.close();
conn.close();\%>
必要注重的中央:
必要注重的有两个方面:①处的代码如注重的是,在往纪录前要先挪用next()函数,定位到第一个纪录,纪录中列的索引是从1入手下手的,不是从0入手下手。②处假如堕落,反省是否是健忘写流的封闭了。就是上面的那句。缘故原由多是,在别的的中央也挪用了response.getOutputStread()。假如不封闭,这个挪用是不克不及乐成的。
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 |
|