001package bradleyross.j2ee.servlets; 002import java.awt.Color; 003import java.awt.Font; 004import java.awt.Graphics; 005import java.awt.image.BufferedImage; 006import java.io.IOException; 007import java.io.OutputStream; 008import javax.imageio.ImageIO; 009import javax.servlet.ServletException; 010import javax.servlet.http.HttpServlet; 011import javax.servlet.http.HttpServletRequest; 012import javax.servlet.http.HttpServletResponse; 013/** 014 * Returns a JPEG image containing a number. 015 * 016 * <p>This will be used for testing.</p> 017 * 018 * @author Bradley Ross 019 * 020 */ 021@SuppressWarnings("serial") 022public class NumberPage extends HttpServlet { 023 public void service(HttpServletRequest req, HttpServletResponse res) 024 throws IOException, ServletException { 025 res.setContentType("image/jpeg"); 026 BufferedImage image = new BufferedImage(512, 512, BufferedImage.TYPE_3BYTE_BGR); 027 Graphics g = image.createGraphics(); 028 g.setColor(Color.lightGray); 029 g.fillRect(0, 0, 512, 512); 030 String stringValue = req.getParameter("value"); 031 if (stringValue == null) { 032 stringValue = "Null Value"; 033 } 034 Font font = new Font("serif", Font.BOLD, 36); 035 g.setFont(font); 036 g.setColor(Color.black); 037 g.drawString(stringValue, 20, 150); 038 g.dispose(); 039 OutputStream out = res.getOutputStream(); 040 if (out == null) { 041 throw new ServletException("Value of getOutputStream() is null"); 042 } 043 ImageIO.write(image, "jpeg", out); 044 } 045}