熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JSP顯示圖片問題時的如何解決

2013-11-15 12:11:58  來源: JSP教程 

  前提使用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()如果不關閉這個調用是不能成功的


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20484.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.