搜过了,有没有给一个完整的?

解决方案 »

  1.   

    帮你写个完整的吧
    下面是SERVLET的代码,作用是将数据库中的图片读出//ShowImage.JAVA
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import java.text.DateFormat;
    import java.awt.*;
    import sun.io.*;
    /**
     * @version  1.0
     * @author qinluo
     */
    public class ShowImage extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    PrintWriter out = resp.getWriter();
    //内容try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    } catch (ClassNotFoundException e) {
    out.println(e.getMessage());
    }    
    String  url="jdbc:oracle:thin:@192.168.0.1:1521:database";    
    //从JSP页面得到IMAGE的ID
    String image_id = req.getParameter("ID");
    Connection con;
    ResultSet rs;
    try {
    con = DriverManager.getConnection(url, "userid", "password");
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select  *  from  TEST_IMG  WHERE   ID = '"+image_id+"'";    
    rs = stmt.executeQuery(sql);
    rs.next();    //以下可是任何处理,比如向页面输出:    
    resp.setContentType("image/jpeg");  
    byte[]  b  =  new  byte[1024];    
    int  len;    
    InputStream  in  =  rs.getBinaryStream("img"); 
    while((len=in.read(b))  >0)    
    resp.getOutputStream().write(b,0,len);    
     
    in.close();    
    rs.close();  
    } catch (Exception e) {   
      out.println(e.getMessage());
    }     } /**
    * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException { }}然后你只需要在JSP中将它作为一个IMG的源就可以了
    例如在某JSP 中
    <image src="..\ShowImage?ID=<%=rs_img.getString("id")%>" width="120" height="120">这样就搞定了!