package cn.itcast.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ResponseDemo5 extends HttpServlet { private int WIDTH = 120; private int HEIGHT = 25; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { BufferedImage image = new BufferedImage(WIDTH , HEIGHT , BufferedImage.TYPE_INT_RGB); Graphics graphics = image.getGraphics(); //设置背景色 setBackgroundColor(graphics); //设置边框 setBorder(graphics); //绘制随机线 drawRandomLine(graphics); //绘制随机数字 drawRandomNum(graphics); response.setContentType("image/jpeg"); ImageIO.write(image, "jpg", response.getOutputStream()); } private void drawRandomNum(Graphics graphics) { // TODO Auto-generated method stub graphics.setColor(Color.RED); graphics.setFont(new Font("楷体", Font.BOLD, 20)); String base="u96d5u864eu7684u4e00u4e86u662fu6211u4e0du5728u4ebau4eecu6709u6765u4ed6u8fd9u4e0au7740u4e2au5730u5230u5927u91ccu8bf4u5c31u53bbu5b50" + "u5f97u4e5fu548cu90a3u8981u4e0bu770bu5929u65f6u8fc7u51fau5c0fu4e48u8d77u4f60u90fdu628au597du8fd8u591au6ca1u4e3au53c8u53efu5bb6u5b66u53ea" + "u4ee5u4e3bu4f1au6837u5e74u60f3u751fu540cu8001u4e2du5341u4eceu81eau9762u524du5934u9053u5b83u540eu7136u8d70u5f88u50cfu89c1u4e24u7528u5979" + "u56fdu52a8u8fdbu6210u56deu4ec0u8fb9u4f5cu5bf9u5f00u800cu5df1u4e9bu73b0u5c71u6c11u5019u7ecfu53d1u5de5u5411u4e8bu547du7ed9u957fu6c34u51e0" + "u4e49u4e09u58f0u4e8eu9ad8u624bu77e5u7406u773cu5fd7u70b9u5fc3u6218u4e8cu95eeu4f46u8eabu65b9u5b9eu5403u505au53eb"; int x = 10; for(int i = 0; i < 4; i++) { String str = base.charAt(new Random().nextInt(base.length())) + ""; graphics.drawString(str, x, 21); x += 28; } } private void drawRandomLine(Graphics graphics) { // TODO Auto-generated method stub graphics.setColor(Color.GREEN); for(int i = 0; i < 5; i++) { int x1 = new Random().nextInt(WIDTH); int y1 = new Random().nextInt(HEIGHT); int x2 = new Random().nextInt(WIDTH); int y2 = new Random().nextInt(HEIGHT); graphics.setColor(Color.GREEN); graphics.drawLine(x1, y1, x2, y2); } } private void setBorder(Graphics graphics) { // TODO Auto-generated method stub graphics.setColor(Color.BLACK); graphics.drawRect(0, 0, WIDTH, HEIGHT); } private void setBackgroundColor(Graphics graphics) { // TODO Auto-generated method stub graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, WIDTH - 1, HEIGHT - 1); } }