package int_2.servlets.assignments1; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.awt.*; import java.awt.image.*; import com.sun.image.codec.jpeg.*; import java.sql.*; import java.util.*; import int_2.servlets.*; import int_2.tools.*; import int_2.tools.graphics.*; /** Please respect the copyright of this code. It is not allowed to copy this code and use at any circumstances. @author © Fredrik Andersson
This servlet uses code from my home made toolbox that you can find in the folder 8/tools and 8/beans. The toolbox is not ready yet, I have been working for it for a couple of years when I have time. The goal is to get a toolbox of classes so it will be easier to map tasks to use-case-diagram. This class draw a circle digram with a random result. */ public class DynamicGraphics_1c extends GeneralServlet { public void start(HttpServletRequest request, HttpServletResponse response) throws IOException { System.setProperty("java.awt.headless", "true"); ServletOutputStream servletOutputStream = response.getOutputStream(); response.setContentType("image/jpeg"); BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB); Graphics graphics = bufferedImage.getGraphics(); Form form = FormManager.collectForm(request); DiagramDataList diagramDataList = new DiagramDataList(); for(int i = 0; i < 10; i++) { diagramDataList.add( new DiagramData(getRandomDouble(), ""+i) ); } diagramDataList.setPercents(); diagramDataList.bubbleSort(); diagramDataList.setAngles(); CircleDiagramImageCreator circleDiagramImageCreator = new CircleDiagramImageCreator(200, 200, diagramDataList); circleDiagramImageCreator.createBackBufferAndbackBufferGraphics2D(); circleDiagramImageCreator.drawOnBackBuffer(); graphics.drawImage(circleDiagramImageCreator.getImage(), 0, 0, null); JPEGCodec.createJPEGEncoder(servletOutputStream).encode(bufferedImage); servletOutputStream.close(); } public double getRandomDouble() { return Math.random() * 10; } } /* En variant try { ServletUtils.returnFile(req.getRealPath(imagePath), out); } catch (FileNotFoundException e) { } */