美文网首页
图片验证码的生成

图片验证码的生成

作者: wswenyue | 来源:发表于2014-10-03 20:48 被阅读310次

    图片验证码的生成

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            
            //6、设置头,控制浏览器不要缓存图片数据
            response.setHeader("Expires", "-1");
            response.setHeader("Cache-Control", "no-cache");
            response.setHeader("pragma", "no-cache");
            
            //5、通知浏览器以图片的方式打开
            response.setHeader("content-type", "image/jpeg");
            
            //1、在内存中创建一幅图片
            BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
            
            //2、得到图片
            Graphics g = image.getGraphics();
            //设置图片背景颜色
            g.setColor(Color.WHITE);
            g.fillRect(0, 0, 80, 20);
            
            //3、向图片上写数据
            g.setColor(Color.BLUE);
            g.setFont(new Font(null,Font.BOLD,20));
            g.drawString(makeNum(), 0, 20);
            
            
            //4、将图片写给浏览器
            ImageIO.write(image, "jpg", response.getOutputStream());
        }
    

    随机数的生成

    //生成七位随机数的函数
        private String makeNum() {
            
            Random r = new Random();
            String num = r.nextInt(9999999) + "";
            StringBuffer sb = new StringBuffer();
            for (int i=0;i<7-num.length();i++){
                sb.append("0");        //不够七位的用“0”补充
            }
            
            num = sb.toString()+num;    //字符串合并
            
            return num;
        }
    

    中文验证码

    • 将常用字的编码放到一个数组中,然后使用随机数调用即可。

    相关文章

      网友评论

          本文标题:图片验证码的生成

          本文链接:https://www.haomeiwen.com/subject/hvoutttx.html