web.xml
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>
org.jfree.chart.servlet.DisplayChart
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/ReportServlet/DisplayChart</url-pattern>
</servlet-mapping>
jsp页面
<tr>
    <%String graphURL=(String)request.getAttribute("graphURL"); %>
   
    <td colspan="5" align="center"><img src="/<%=graphURL %>"/></td>
    </tr><%=graphURL %>  jfreechart-35189.jpeg  在页面能够输出这个jpg图片。但是就是不显示。 虚心请教下。。

解决方案 »

  1.   

    <td colspan="5" align="center"><img src="<%=graphURL %>"/></td><td colspan="5" align="center"><img src="<%=request.getContextPath()%>/<%=graphURL %>"/></td>
    如果你图片生成成功了,第二种方式一定可以显示图片。第一种方式是相对路径,是否能够显示图片这得根据你地址样的路径来决定。
      

  2.   

    第一:最好不要用这个坑爹的 ServletUtil创建图片
    看看你tomcat下的temp是不是有很多  jpg/png? 一个文件就80K
    想一下多用户的访问的话 1分钟1次 都要 1小时就是 60*80k 一天就是 60*80*24k
    一个月就是 30*60*80*24 = 3456000k = 3375M 
    天啊jfreechart竟然有这么坑爹的方法 !!!
    其次:你生成图片的类是怎么写的?JFreeChart chart = createChart(getDataset());
    HttpSession session = request.getSession();
    String filename = ServletUtilities.saveChartAsJPEG(chart, 644, 299, info , session);
    String graphURL = request.getContextPath()+"/servlet/DisplayChart?filename=" + filename;楼主的代码将 graphURL存贮了么?是转发到该页面的?
    request.setAttribute("graphURL",graphURL);
    request.getRequestDispatcher("chart.jsp").forward(request, response);
      

  3.   

       <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>DisplayChart</servlet-name>
        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
      </servlet>
    <servlet-mapping>
      <servlet-name>DisplayChart</servlet-name>
      <url-pattern>/servlet/DisplayChart</url-pattern>
     </servlet-mapping>mapping检查下,不知道你用的版本和工具包是什么