当前位置: 移动技术网 > IT编程>开发语言>Java > Java SpringBoot请求获取验证码

Java SpringBoot请求获取验证码

2020年08月01日  | 移动技术网IT编程  | 我要评论
当前使用框架 SpringBoot @RequestMapping("/checkCode") public void checkCode(HttpServletResponse response,HttpServletRequest request){ response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","No-cache"); respon

当前使用框架 SpringBoot

 @RequestMapping("/checkCode")
    public void checkCode(HttpServletResponse response,HttpServletRequest request){
        response.setHeader("Pragma","No-cache");
        response.setHeader("Cache-Control","No-cache");
        response.setDateHeader("Expires",0);
        response.setContentType("image/jpeg");
        int width = 60 , height = 30;
        //创建一个图像,宽60 高30
        BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
        Graphics g = image.getGraphics();
        Random random = new Random();
        g.setColor(getRandomColor(200,250));
        g.fillRect(0,0,width,height);
        g.setFont(new Font("Times New Roman",Font.PLAIN,18));
        g.setColor(getRandomColor(160,200));
        //干扰线生成
        for (int i = 0; i < 10; i++) {
            int x = random.nextInt(width);
            int y = random.nextInt(height);
            int xl = random.nextInt(12);
            int yl = random.nextInt(12);
            g.drawLine(x,y,x+xl,y+yl);
        }
        String strCode = "";
        for (int i = 0; i < 4; i++) {
            String strNumber = String.valueOf(random.nextInt(10));
            strCode = strCode+strNumber;
            //设置字体颜色
            g.drawString(strNumber,13*i+6,20);
        }
        System.out.println("当前验证码"+strCode);
        request.getSession().setAttribute("Code",strCode);
        g.dispose();
        try {
            ImageIO.write(image,"JPEG",response.getOutputStream());
            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    /**
     * 随机获取颜色的方法
     * @return
     */
    public Color getRandomColor (int fc , int bc){
        Random random = new Random();
        Color reandomColor = null;
        if(fc > 255){
            fc = 255;
        }
        if(bc > 255){
            bc = 255;
        }
        int r =fc + random.nextInt(bc-fc);
        int g = fc + random.nextInt(bc-fc);
        int b = fc + random.nextInt(bc-fc);
        reandomColor = new Color(r,g,b);
        return reandomColor;
    }

本文地址:https://blog.csdn.net/dalter/article/details/108240096

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网