<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="java.awt.*,com.sun.image.codec.jpeg.*,java.awt.image.*" %> <%@ page import="java.io.OutputStream" %> <% final int W = 60; final int H = 25; final String[] CTable = ("1 2 3 4 5 6 7 8 9 " + "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z").split(" "); BufferedImage img = new BufferedImage(W, H, BufferedImage.TYPE_INT_RGB); Graphics g = img.getGraphics(); // 画背景 g.setColor(Color.PINK); g.fillRect(0, 0, img.getWidth(), img.getHeight()); // 画干扰线 g.setColor(Color.GRAY); for (int i = 0; i < 20; i++) { g.drawLine(new Random().nextInt(W), new Random().nextInt(H), new Random().nextInt(W), new Random().nextInt(H)); } // 随机生成四个数 g.setColor(Color.BLUE); g.setFont(new Font("Courier New", Font.BOLD, 16)); for (int i = 0; i < 4; i++) { g.drawString(CTable[new Random().nextInt(35)], 6 + i * 13, 17); } // 向客户端输出 response.setContentType("image/jpeg"); OutputStream os = response.getOutputStream(); try { JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os); encoder.encode(img); } catch (Exception ex) { // do nothing } finally { if (os != null) { os.close(); } } out.clear(); out = pageContext.pushBody(); %>
详细解决方案
JSP兑现验证码
热度:113 发布时间:2012-08-29 08:40:14.0
相关解决方案