<%@ page contentType="text/html; charset=gb2312"%><%@ page import="java.io.*,java.sql.*"%><%    String sql = " SELECT pic FROM pic WHERE id=1";
    PreparedStatement pstmt = null;    Connection conn = null;    ResultSet rs = null;    try {
    Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager.getConnection"jdbc:mysql://localhost/pic", "root", "123456");        pstmt = conn.prepareStatement(sql);        rs = pstmt.executeQuery();
        if (rs.next()) 
        {
            Blob b = rs.getBlob("pic");
            long size = b.length();
            byte[] bs = b.getBytes(1, (int) size);
            response.setContentType("image/jpeg");
            OutputStream outs = response.getOutputStream();
            outs.write(bs);
            outs.flush();
        } 
    }catch(Exception e){
     e.printStackTrace();
    } finally {
        rs.close();
        pstmt.close()
        conn.close();
    }
%>显示方法:在另一个页面里加入如下标签就可以了<img src="ReadPic.jsp">
LZ参考一下,希望对你有用

解决方案 »

  1.   

    InputStreamReader read = new InputStreamReader (new FileInputStream(blob.getBinaryStream())),"UTF-8");BufferedReader reader=new BufferedReader(read);
    String line;
    while ((line = reader.readLine()) != null) {
    System.out.println(line);
    lz这样可以设置读取的字符编码,可以解决了。
      

  2.   

    如5楼的人所说,可以显示
    但需要增加:
    response.reset();
    response.setHeader("Content-disposition", "attachment; filename=processImage.png");//设定输出文件头
    response.setContentType("application/png");//设定输出类型