JSP生成验证码

jopen 9年前
    <%@ page contentType="image/jpeg"            import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"        %>        <%!            Color getRandColor(int fc, int bc)            {                Random rd =  new Random();                if (fc > 255)                    fc = 255;                if (bc > 255)                    bc = 255;                int r = rd.nextInt(bc - fc);                int g = rd.nextInt(bc - fc);                int b = rd.nextInt(bc - fc);                return new Color(r,g,b);            }        %>        <%            response.setHeader("Pragma", "No-cache");            response.setHeader("Cache-Control","no-cache");            response.setDateHeader("Expires", 0);                        int width = 60, height = 20;            BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);            Graphics g = image.getGraphics();            Random rd = new Random();            g.setColor(getRandColor(200,250));            g.fillRect(0, 0, width, height);            g.setFont(new Font("Times New Roman",Font.PLAIN,18));                        g.setColor(new Color(255,255,255));            g.drawRect(0, 0, width - 1, height - 1);                        g.setColor(getRandColor(160,200));                    for (int i=0;i<155;i++)            {                 int x = rd.nextInt(width);                 int y = rd.nextInt(height);                 int xl = rd.nextInt(12);                 int yl = rd.nextInt(12);                 g.drawLine(x,y,x+xl,y+yl);            }                        String sRand="";            for (int i=0;i<4;i++){                String rand=String.valueOf(rd.nextInt(10));                sRand+=rand;                g.setColor(new Color(20+rd.nextInt(110),20+rd.nextInt(110),20+rd.nextInt(110)));                g.drawString(rand,13*i+6,16);            }            session.setAttribute("rand",sRand);                        g.dispose();                        ImageIO.write(image, "JPEG", response.getOutputStream());            out.clear();            out = pageContext.pushBody();        %>  
 作为图片被其他页面调用
    <img src = "code.jsp"/>