看下面的这个函数:
public void createImage(ServletRequest req, ServletResponse res,Chart chart)throws IOException 
{

res.setContentType("image/jpeg");      
ChartUtilities.writeChartAsJPEG(res.getOutputStream(),
100,chart.getChart(),chart.getWidth(),chart.getHeight(),null);
}

解决方案 »

  1.   

    用第一钟,比较好
    下面是程序,你只要在web.xml中配个servlet就可以了。
    import java.sql.*;
    import java.io.*;
    import java.util.*;
    import javax.servlet.*;
    import javax.servlet.http.*;public class DownLoad extends HttpServlet{
        public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            doPost(request,response);
        }
        public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            System.out.println("======DownLoad begin=====");
            try{
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@10.216.0.2:1521:ORCL","test","test");
                Statement stmt=conn.createStatement();
                String id=request.getParameter("id");
                String sql="SELECT id, name, content FROM test where id='"+id+"'";
                ResultSet rs=stmt.executeQuery(sql);
                if(rs.next()){
                    Blob blob = rs.getBlob("content");
                    byte[] ab = blob.getBytes(1, (int)blob.length());
                    response.setContentType("image/jpeg");
                    ServletOutputStream op = response.getOutputStream();
                    op.write(ab);
                    op.flush();
                    op.close();
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }
            System.out.println("======DownLoad end=====");
        }
    }
      

  2.   

    以下是调用,其中tempChart是你生成的chart对象
    <%
    new com.chart.CreateChartImage().createImage(request,response,tempChart);

    %>
      

  3.   

    jfreechart
    好像没有见过
      

  4.   

    不生成图片文件是不可能的,其他方法也是在temp文件夹生成临时图片而已。
      

  5.   

    --------两个jsp-----------------------------------主-----------------------
    <table width="100%" >
    <tr>
    <td align="center"><img  src="item_pic.jsp?ITEM_ID=<%=item_id%>&PIC_NUM=<%=pic_num%>">
    </td>
    </tr>
    </table>
    ----------------------------------------item_pic.jsp--------------------------------------<%@ page import="java.sql.*" %>
    <%@ page import="java.io.*" %>
    <%   
         Connection conn = null;
     Statement stmt=null;
     ResultSet set=null;
         try{
    String item_id=request.getParameter("ITEM_ID");
    String pic_num=request.getParameter("PIC_NUM");
    String sql="select PIC from ITEM_PIC WHERE ITEM_ID ="+item_id+" and  PIC_NUM = "+pic_num;
        conn =getConnection();
            stmt = conn.createStatement();  
    set = stmt.executeQuery(sql);
    if(set.next()){
    InputStream in = set.getBinaryStream("PIC"); 
    response.reset(); 
    response.setContentType("image/jpeg");
    byte[] b = new byte[1024]; 
    int len;
    while((len=in.read(b))!=-1){
    response.getOutputStream().write(b); 
    }
    in.close(); 
    }
     }catch(Exception e){
     }finally{
    try{
    if(set!=null)
    set.close();
    }catch(java.sql.SQLException se){
    }
    try{
    if(stmt!=null)
    stmt.close();
    }catch(java.sql.SQLException se){
    }
        try{
        if(conn != null )
    conn.close();
        }catch(java.sql.SQLException se){
        } 
    }
    %>
      

  6.   

    chenxb1980(倾听) 的思路不错 :)