public class ImageServlet extends HttpServlet { private static final String CONTENT_TYPE="image/jpeg"; public int DataArray[]={120,100,60,200}; public int Total=480; public Component dummy; public ImageServlet() { super(); } public void init(ServletConfig cfg) throws ServletException { super.init(cfg); dummy=new Frame(); dummy.addNotify();
} public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{ //request.i response.setContentType(CONTENT_TYPE); response.setHeader("Pragma","no-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); Color fg=new Color(255,255,0); Color bg=new Color(255,100,0); Color fill=new Color(155,155,155); if(request.getParameter("ChartType").equals("pie")) sendImage(response,createPieChart(300,300,fg,bg,fill)); } public BufferedImage createPieChart(int w,int h,Color fg,Color bg, Color fill) { int done=0,arc=0; BufferedImage img=createImage(w,h,bg); Graphics g=img.getGraphics(); for(int i=0;i <DataArray.length;i++) { done+=DataArray[i]; int newArc=(done*360)/Total; g.setColor(new Color(255,50,50*i)); g.fillArc(0, 0, w-1, h-1, arc,newArc); arc=newArc; } return img; } public BufferedImage createImage(int w,int h,Color bg) { BufferedImage img =new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); Graphics g=img.getGraphics(); g.setColor(bg); g.fillRect(0, 0, w, h); return img; } public void sendImage(HttpServletResponse res , BufferedImage img ) { try { JPEGImageEncoder encoder; ByteArrayOutputStream byteOut=new ByteArrayOutputStream(); OutputStream Out=res.getOutputStream(); encoder=JPEGCodec.createJPEGEncoder(byteOut); encoder.encode(img); byte[] buf=byteOut.toByteArray(); byteOut.close(); res.setContentLength(buf.length); Out.write(buf); Out.close(); } catch(Exception e) { e.printStackTrace(); } } } /***********/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">