Javascript 在JSP上显示图像时遇到问题
嗨,我曾尝试在jsp上显示一个图像,但失败得很惨。我正在生成一个图表并保存一个文件,而不是刷新它,现在我想在jsp上显示这个名为“图表”的图片。我知道这些都在jsp上,我应该使用servlet,但这只是一个原型Javascript 在JSP上显示图像时遇到问题,javascript,java,jsp,netbeans,Javascript,Java,Jsp,Netbeans,嗨,我曾尝试在jsp上显示一个图像,但失败得很惨。我正在生成一个图表并保存一个文件,而不是刷新它,现在我想在jsp上显示这个名为“图表”的图片。我知道这些都在jsp上,我应该使用servlet,但这只是一个原型 <%@ page import="java.sql.*"%> <%@ page import="java.io.*"%> <%@ page import="org.jfree.chart.ChartFactory"%> <%@ page impo
<%@ 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>
函数refreshIMG()
{
$.ajax({
url:“displaychartpricevsprice.jsp”,缓存:false,
成功:函数(html){$(“#”)html(“”);
回调();
}
});
}
函数回调()
{
settimeout(“refreshIMG();”,1800000);
//1800=30秒(毫秒)
}
刷新img();
您必须将文件://
(或尝试-文件://
)放在图像源URL的开头 语法没有问题。您正在生成该图像并尝试在同一页面上显示它
我能看到的唯一问题是,页面加载时图像不可用。请尝试在页面加载之前创建该图像,或者如果希望在页面加载后显示图像,请使用ajax。将图像存储在web应用程序目录中,并在图像标记中使用相对url
<img src="<folder>/chart.jpg"/>
/chart.jpg/>
或者可以使用el表达式
<img src="${pageContext.request.contextPath}/<folder>/chart.jpg">
/chart.jpg“>
我已经试过了,但仍然没有显示图像您的浏览器在开发人员控制台中显示了什么?也许是因为安全原因它拒绝了。