我在访问数据库里的图片的时候图片能正常显示,但是总是报getOutputStream() has already been called for this response,这个异常,请问哪位高手帮忙看看啊!
<%@ page contentType="image/jpeg" %><%@ page import="java.awt.image.*,java.sql.*,com.sun.image.codec.jpeg.*,java.util.*,javax.imageio.*,java.io.*"%><%// Create image
String username,password,url;
Connection conn = null;
Statement stmt = null;
BufferedInputStream inputimage=null;
username="ghx";
password="123456";
url ="jdbc:oracle:thin:@10.71.200.198:1521:test";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection(url,username,password);
stmt=conn.createStatement();
boolean defaultCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
String myid=(String)request.getParameter("id");
try {
String sql="SELECT BLOBCOL FROM R_LLGL WHERE ID='"+myid+"'";
ResultSet rs = stmt.executeQuery(sql);while (rs.next()) {
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("BLOBCOL");
inputimage = new BufferedInputStream(blob.getBinaryStream());
}
} catch (Exception ex) {
System.out.println("blobRead()'s exception"+ex);
conn.rollback();
throw ex;
}
conn.setAutoCommit(defaultCommit);
// Send back image
BufferedImage image = null;
try{
image = ImageIO.read(inputimage);
}catch(IOException e){
System.out.println(e);
}
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
inputimage.close();
/*/**/
%>