Java进阶开发课堂笔记之开发验证码功能

开发验证码功能

完成了以上的工作之后,我们就是可以开始开发登录界面中另一个重要的功能,就是验证码功能。
首先,我们新创建一个CaptchaController的类:
在这里插入图片描述
同样,也是继承HttpServlet,并且配置好WebServlet(配置WebServlet的方法,参考Java进阶开发课堂笔记(四)),此次我们重写的是service
在这里插入图片描述
因为验证码是一张图片,而不是一个文本,所以,我们先创建一个缓冲区BufferedImage来存放图片,使用Graphics这个是抽象类,用来传给paint()方法作为画笔的,此时我们需要用的得命令有:
在这里插入图片描述
命令包含了设置背景颜色,字体大小,格式,增加斜线和噪点的代码。
因为验证码非固定文本,所有我们要定义一个方法,随机获取字符:
在这里插入图片描述
建议将容易混淆的字母去除,当然不去除也是可以的。
定义一个方法后,我们可以在main文件夹下创建一个Test文件夹用来测试方法的是否可用:
在这里插入图片描述
测试完,方法是可以使用之后,在CaptchaController里面,我们就可以调用它:

 String code =randomString(4); //调用随机生成验证码的方法
        g.drawString(code,25,32);

(具体位置可查看先前图片中,标有提示)
最后,我们要在浏览器中显示验证码:
在这里插入图片描述
完成以上操作后,就基本完成了验证码的开发,我们现在运行起来看一下。
在这里插入图片描述

优化验证码

在这里插入图片描述
这个是上面已经完成的验证码,此时我想随机获取验证码的字体颜色、斜线的颜色和噪点的颜色,我们可以定义一个getRandomColor方法通过用16进制的颜色代码,进行随机取色:

private static Color getRandomColor(){
        Random random = new Random();
        Color color =new Color(random.nextInt(256),random.nextInt(256),random.nextInt(256));
        return color;
    }

方法定义好之后,我们分别在字体、斜线和噪点的代码中使用g.setColor(getRandomColor);来调用这个方法,完成之后,我们运行一下,看下结果:
在这里插入图片描述

最后,不要忘了提交代码到本地仓,并push到远程仓库去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值