⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chartservlet.java

📁 这是本人做的投票系统的源码
💻 JAVA
字号:
package cn.hxex.vote.servlet;

import java.io.IOException;
import java.util.Iterator;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

import cn.hxex.vote.dao.IVoteDAO;
import cn.hxex.vote.model.Vote;
import cn.hxex.vote.model.VoteItem;
import cn.hxex.vote.util.DAOFactory;

public class ChartServlet extends HttpServlet {
	public void doPost(HttpServletRequest request, HttpServletResponse response)
					throws ServletException, IOException {
		String id = request.getParameter("id");
		IVoteDAO dao = DAOFactory.getVoteDAO();
		Vote vote = dao.getVote(id);
		
		/*获得JFreeChart对象的实例*/
		JFreeChart chart = getChart(vote);
		
		/*设置输出对象的类型*/
		response.setContentType("image/jpeg");
		
		/*输出图形*/
		ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 100,
						chart, 400, 300, null);
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
					throws ServletException, IOException {
		doPost(request, response);
	}
	
	public static JFreeChart getChart(Vote vote) {
		JFreeChart chart = null;
		/*判断是否是饼图*/
		if (vote.getPicType().indexOf("PIE") == 0) {
			/*生成饼图的数据*/
			DefaultPieDataset data = new DefaultPieDataset();
			
			Iterator it = vote.getVoteItems().iterator();
			
			while (it.hasNext()) {
				VoteItem vi = (VoteItem)it.next();
				data.setValue(vi.getTitle(), vi.getVoteNum());
			}
			
			/*判断是否是普通饼图*/
			if (vote.getPicType().equals("PIE")) {
				chart = ChartFactory.createPieChart(vote.getTitle(),
						data, false, false, false);
			}
			else {
				//3D饼图
				chart = ChartFactory.createPieChart3D(vote.getTitle(),
						data, false, false, false);
			}
		}
		else {
			/*生成柱状图的数据*/
			DefaultCategoryDataset data = new DefaultCategoryDataset();
			
			Iterator it = vote.getVoteItems().iterator();
			
			while (it.hasNext()) {
				VoteItem vi = (VoteItem)it.next();
				data.setValue(vi.getVoteNum(), "选项", vi.getTitle());
			}
			
			/*判断是否是普通柱状图*/
			if (vote.getPicType().equals("BAR")) {
				chart = ChartFactory.createBarChart(vote.getTitle(), 
						"选项", "数量", data, PlotOrientation.VERTICAL, 
						false, false, false);
			}
			else {
				//3D柱状图
				chart = ChartFactory.createBarChart3D(vote.getTitle(), 
						"选项", "数量", data, PlotOrientation.VERTICAL, 
						false, false, false);
			}
		}
		
		return chart;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -