JSP下用JfreeChart生成柱状图

1,首先是在web.xml当中配置一下DisplayChar
<  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>/servlet/DisplayChart</url-pattern>
  </servlet-mapping>

2.JSP页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>
<%@ page import="org.jfree.chart.JFreeChart" %>
<%@ page import="java.awt.Color" %>
<%@ page import="org.jfree.chart.ChartFactory" %>
<%@ page import="org.jfree.chart.plot.PlotOrientation" %>
<%@ page import="org.jfree.chart.plot.CategoryPlot" %>
<%@ page import="org.jfree.chart.axis.CategoryAxis" %>
<%@ page import="org.jfree.chart.axis.ValueAxis" %>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>
<%@ page import="org.jfree.chart.axis.AxisLocation" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'barChart.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <%
    	//测试数据
    	DefaultCategoryDataset dataset=new DefaultCategoryDataset();
    	dataset.addValue(100,"January","China");
    	dataset.addValue(200,"February","China");
    	dataset.addValue(200,"March","China");
    	
    	dataset.addValue(125,"January","USA");
    	dataset.addValue(111,"February","USA");
    	dataset.addValue(99,"March","USA");
    	
    	dataset.addValue(99,"January","Japan");
    	dataset.addValue(80,"February","Japan");
    	dataset.addValue(70,"March","Japan");
    	//得到Chart对象
    	JFreeChart chart=ChartFactory.createBarChart3D("第一个Web下的柱状图","Country","amount",dataset,
    												PlotOrientation.VERTICAL,false,false,false);
    	chart.setBackgroundPaint(Color.WHITE);
    	CategoryPlot plot=chart.getCategoryPlot();
    	plot.setBackgroundPaint(Color.GRAY);
    	//设置横轴
    	CategoryAxis categoryAxis=plot.getDomainAxis();
    	//设置标签之间的距离是20%
    	categoryAxis.setCategoryMargin(0.2);
    	categoryAxis.setLowerMargin(0.1);
    	categoryAxis.setUpperMargin(0.1);
    	//设置纵轴
    	ValueAxis valueAxis=plot.getRangeAxis();
    	valueAxis.setLowerMargin(0.1);
    	valueAxis.setUpperMargin(0.1);
    	
    	BarRenderer3D render=new BarRenderer3D();
 		render.setSeriesPaint(0,Color.RED);
 		render.setSeriesPaint(1,Color.GREEN);	  	
 		plot.setRenderer(render);
 		plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
 		plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
 		String filename=ServletUtilities.saveChartAsPNG(chart,500,500,null,session);
 		String getURL=request.getContextPath()+"/servlet/DisplayChart?filename="+filename;
     %>
     <div id='bar' align="center">
     	<img src='<%=getURL %>' usemap="#<%=filename %>" width="500" height="500">
     </div>
  </body>
</html>

你可能感兴趣的:(html,jsp,Web,servlet,jfreechart)