评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2009-11-27 17:09
零全零美
多谢博主写出这么好的总结,如果能加上汉字验证码,会更完美! 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2009-11-27 17:14
鹏飞liu
我最近也要用到验证码,但是不知道是直接调用jsp文件的形式还是servlet方式好一些,请指教!谢谢 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)[未登录]
2009-11-27 17:15
IKnowIT
多谢零全零美的建议!有时间把汉字验证码功能以及背景图片随机打点功能加上。 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)[未登录]
2009-11-27 17:17
IKnowIT
@鹏飞liu
也可以在jsp里直接写代码(或调用其他类)生成验证码,我习惯把这类的功能封装成工具类,便于在各种情况下重用。 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2009-11-28 23:10
bzp
不用session来传递验证码,行不行呢?当访问量比较大的时候,最好是尽量减少session的数量比较好 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2009-11-28 23:12
bzp
不用session来传递验证码,如何做? 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2009-11-29 11:49
零全零美
不用session那也只能用cookie了,页面展示的时候把验证码写入cookie,并设置适当的有效期,提交的时候再验证cookie里面的相应值!
不过我感觉,如果不是访问量大到离谱,用session存一下验证码也并没有什么不妥! 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2009-11-29 22:39
星风
一些小瑕疵:
1.生成图片时,传入的宽度没用上导致宽度过小时字符超出图片宽度。
// 写验证码字符
...
// fx += fsize * 0.9; // 原代码
// 根据传入宽度调整字距并随机±20%浮动
fx += (width / textCode.length()) * (Math.random() * 0.4 + 0.8);
...
2.VerifyCode.generateImageCode()的第二个重载无法拿到随机生成的字符串,没有任何意义。可以增加一个方法getLastTextCode()获取但又必须保证线程安全,还不如删掉。
3.随机颜色里
Color c = new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255));
应该是256
4.生成验证码字符串的那一大段swich完全可以简化,这样太繁冗了。
可以这样写(只是一个思路,没有测试):
// 添加一个静态字段
static char[] chars = {数字,大写字母,小写字母};
...
// 方法内替换switch
int begin = 0;
int end = 0;
switch (type) {
case TYPE_NUM_ONLY:
begin = 0;
end = 10; // 第10个不是数字
break;
// 其他的case...
}
while (i < length) {
int t = r.nextInt(end - begin); // 如果end设为9,这里要+1
code.append(chars[t + begin]);
i++;
}
...
最后感谢楼主的分享。 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)[未登录]
2009-11-30 10:29
IKnowIT
@星风
多谢您的意见,受教了。
第1条:非常高明,我原来没有考虑到,已经修改。多谢!
具体浮动的数,上浮20%有时字符会超出边界,测试一下可能:fx += (width / textCode.length()) * (Math.random() * 0.3 + 0.8); //0.4改为0.3更合适。
第2条:原是想对外提供一个直接生成图片的方法,但正如兄所说,如果用户没有textCode确实也没用。已经去掉。
第3条:应该是256,值包括255.
第4条:有一定道理,只是当验证码是两两混合或者三者混合时,需要考虑到验证码的每个数都是从其中随机抽取的,实际写起来代码量可能也不少。
最后,非常感谢如星风兄此好的建议,受益匪浅。 回复 更多评论
# re: Java通用验证码程序及应用示例(提供源码下载)
2010-09-26 10:03
来访者
# re: Java通用验证码程序及应用示例(提供源码下载)
2012-04-16 16:36
宋军明
# re: Java通用验证码程序及应用示例(提供源码下载)
2014-05-05 21:14
zuidaima
# re: Java通用验证码程序及应用示例(提供源码下载)
2014-07-14 15:03
刘鹏
楼主,为什么我把代码都复制了,验证码不显示呢?显示的是个x 回复 更多评论