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}