繁体   English   中英

无法在JSP上显示图像

[英]having trouble displaying an image on JSP

嗨,我尝试在jsp上显示图像,但失败了。 我正在生成图表并保存文件而不是刷新文件,现在我想在jsp上显示这张称为图表的图片。 我知道这一切都在jsp上,我应该使用servlet,但这只是一个原型。

<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.chart.ChartUtilities"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.data.*"%>
<%@ page import="org.jfree.data.jdbc.JDBCCategoryDataset"%>
<%@ page import="org.jfree.chart.renderer.category.CategoryItemRenderer"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="java.awt.Color"%>
<%
    String query = "SELECT product_name,price from client";
    JDBCCategoryDataset dataset = new JDBCCategoryDataset(
            "jdbc:mysql://localhost:3306/client",
            "com.mysql.jdbc.Driver", "rootroot", "rootroot");
 //"jdbc:mysql://localhost/client", "rootroot", "rootroot"
    dataset.executeQuery(query);
    JFreeChart chart = ChartFactory.createBarChart3D("Products Vs Price",
            "product_name", "price", dataset,
            PlotOrientation.VERTICAL, true, true, false);

    CategoryPlot plot = chart.getCategoryPlot();
    CategoryItemRenderer renderer = plot.getRenderer();

    renderer.setSeriesPaint(0, Color.green);
    try {
        ChartUtilities
                .saveChartAsJPEG(
                        new File(
                                "C:\\Users\\student\\Documents\\NetBeansProjects\\WebForm\\WebForm-war\\chart.jpg"),
                        chart, 1000, 1000);
    } catch (IOException e) {
        System.out.println("Problem in creating chart.");
    }
%>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

<script>
function refreshIMG()  
 {  
 $.ajax({  
   url: "displaychartpricevsprice.jsp",     cache: false,  
   success: function(html){   $("#").html("<img src=\"C:\Users\student\Desktop\WebForm\WebForm-war\\chart.jpg"/>");  
     callback();  
   }  
 });  
 }  
 function callback()  
 {  
 settimeout("refreshIMG();", 1800000);  
 //1800= 30seconds in ms  
 }  
 refreshIMG();  
 </script>


 </head>
<body>
<div >
<img src="C:\Users\student\Documents\NetBeansProjects\WebForm\WebForm-war\chart.jpg"    width=1000 height=1000>

</div>
</body>

您必须将file:// (或尝试file:/// )放在图像源URL的开头。

语法没有问题,您正在生成该图像并尝试在同一页面上显示它。

我唯一看到的问题是页面加载时图像不可用,请尝试在页面加载之前创建该图像,或者如果要在页面加载后显示它,请使用Ajax。

将图片存储在您的Web应用目录中,并在图片标签中使用相对网址

<img src="<folder>/chart.jpg"/>

或者您可以使用el表达式

<img src="${pageContext.request.contextPath}/<folder>/chart.jpg">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM