java验证码源码_Java通用验证码程序及应用示例(提供源码下载)

评论

# 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  回复  更多评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值