【发布时间】:2011-07-24 09:44:13
【问题描述】:
如何使用 Servlet 和渲染图像绘制折线图? 我写了一个servlet并创建了一个图表。但我不知道如何在我的jsp页面上显示它。
我的 servlet 代码:
public class GraphGen extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
genGraph(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
genGraph(req, resp);
}
@SuppressWarnings("deprecation")
public void genGraph(HttpServletRequest req, HttpServletResponse resp) {
try {
OutputStream out = resp.getOutputStream();
// Create a simple Bar chart
System.out.println("Setting dataset values");
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(30, "Girls","SCIENCE CLASS");
dataset.setValue(30, "Boys","SCIENCE CLASS");
dataset.setValue(10, "Girls","ECONOMICS CLASS");
dataset.setValue(50, "Boys","ECONOMICS CLASS");
dataset.setValue(5, "Girls","LANGUAGE CLASS");
dataset.setValue(55, "Boys","LANGUAGE CLASS");
JFreeChart chart = ChartFactory.createBarChart3D(
"Comparison between Girls and Boys in Science," + "Economics and Language classes",
"Students Comparisons", "No of Students",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
chart.setBackgroundPaint(Color.white);
// Set the background colour of the chart
chart.getTitle().setPaint(Color.blue);
// Adjust the colour of the title
CategoryPlot plot = chart.getCategoryPlot();
// Get the Plot object for a bar graph
plot.setBackgroundPaint(Color.white);
plot.setRangeGridlinePaint(Color.red);
CategoryItemRenderer renderer = plot.getRenderer();
renderer.setSeriesPaint(0, Color.red);
renderer.setSeriesPaint(1, Color.green);
renderer.setItemURLGenerator(
new StandardCategoryURLGenerator(
"index1.html",
"series",
"section"));
renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
resp.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 625, 500);
} catch (Exception e) {
System.err.println("Problem occurred creating chart." + e.getMessage());
}
}
【问题讨论】:
-
您是否已经询问过 Google 博士,例如stackoverflow.com/questions/1255717/…?
-
谢谢,请问您遇到什么问题,到底是什么不行?
-
如何在jsp页面上显示这个图片?
-
你必须在你的 JSP 中包含一个
<img src="path_to_your_servlet"/>链接。请记住,在您的情况下,servlet 是图像。 -
@home 的建议是正确的。您需要使用
<img/>标记链接到servlet。我鼓励您提供比“它没有用”更有用的反馈。
标签: jsp servlets jfreechart