要导入两个jar包:jfreechart.jar jcommon.jar
Servlet:
package com.jxnu.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.servlet.ServletUtilities;import org.jfree.data.category.DefaultCategoryDataset;public class BarChartServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;chartSet=UTF-8"); HttpSession session = request.getSession(); DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(3, "", "优秀"); dataset.addValue(8, "", "良好"); dataset.addValue(15, "", "中等"); dataset.addValue(12, "", "及格"); dataset.addValue(8, "", "不及格"); JFreeChart chart = ChartFactory.createBarChart("考试成绩统计图", "成绩", "人数", dataset, PlotOrientation.HORIZONTAL, false, false, false); String filename = ServletUtilities.saveChartAsPNG(chart, 300, 200, session);//一般保存在Session范围内 String graphURL = "/Prj28/DisplayChart?filename=" + filename; //session.setAttribute("graphURL", graphURL);下面代码也能实现同样功能 request.setAttribute("graphURL", graphURL); request.getRequestDispatcher("/barChart1.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
JSP页面:
<%@ page language="java" pageEncoding="UTF-8"%><html><body> <img src="${requestScope.graphURL}" alt="图片不存在"/></body></html>
访问地址:http://127.0.0.1:8080/Prj28/servlet/BarChartServlet