在没接触过验证码之前,很多人都以为验证码是一张静态图片,
然而并不是,验证码是代码生成的一串由大小写字母和数字组成的字符串,图片只是存放字符串的容器。
我们可以想象一下,如果验证码是一张静态的图片,那么就需要在项目中存放大量验证码图片,我相信应该没有人会这么做,因为这样做会导致项目运行变慢,用户的等待时间过长,体验感差等一系列问题。
其实我们添加验证码就是为了尽量妨碍网络上某些脚本疯狂测试用户的账号密码,随意登录用户的账号,进行某些修改,所以一般我们设置验证码的长度为5位左右,也不会设置非常难的字符串,因为验证码是为了防机器的,而不是为了防人的,若是连人都防了,那么这个项目就玩完了
当然验证码一开始一次就只生成一张,之后的生成,需要在用户点击刷新页面,或者切换图片时,才会再次生成,所以,为了用户有良好的体验感,我们会添加一个刷新图标并在验证码图片上添加切换事件,方便用户刷新验证码
验证码的生成步骤:
1.调用一个方法,用于生成随机字符串
2.再调用一个根据生成的字符串生成验证图片的方法
3.将生成的验证码字符串保存到Session中(用于登录时验证是否输入正确)
4.最后将验证图片返回到页面
因方便查找,所以将生成字符串和生成验证图片的方法存放到了另一个类中
类名ValidCodeUtils,所以具体生成验证码的方法,如图:
提示:如果用户输入验证码不正确,就应该设置刷新一下验证码,再清空旧的验证码
注:本文为本人的不成熟理解,可参照,不可完全相信
初来乍到,请多多指教,大神勿喷。