专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » jsp验证码代码:JSP汉字验证码的实现代码 »正文

jsp验证码代码:JSP汉字验证码的实现代码

来源: 发布时间:星期四, 2009年2月12日 浏览:876次 评论:0


简单数字验证码对于大家来说已经不够要求了今天和大家起来看看JSP汉字验证码实现思路方法及代码吧先看代码( )

<%@pagecontentType=\"image/jpeg\"import=\"java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*\"%>
  
<%!
//createbysmallnest
//email:[email protected]
//website:www.kuaff.com
//生成随机颜色
ColorgetRandColor(Randomrandom,fc,bc)...{
(fc>255)fc=255;
(bc>255)bc=255;
r=fc+random.nextInt(bc-fc);
g=fc+random.nextInt(bc-fc);
b=fc+random.nextInt(bc-fc);
Color(r,g,b);
}
%>
  
<%
//设置页面不缓存Cache
response.Header(\"Pragma\",\"No-cache\");
response.Header(\"Cache-Control\",\"no-cache\");
response.DateHeader(\"Expires\",0);
//设置图片长宽
width=176,height=30;
//设置备选汉字剔除些不雅汉字
Stringbase=\"了是我不在人们有来他这上着个地到大里说就去子得也和那要下看天时过出小么起你都把好还多没为又可家学只以主会样年想生同老中十从自面前头道它后然走很像见两用她国动进成回什边作对开而己些现山民候经发工向事命给长水几义 3声于高手知理眼志点心战 2问但身方实吃做叫当住听革打呢真全才 4已所敌的最光产情路分总条白话东席次亲如被花口放儿常气 5第使写军吧文运再果怎定许快明行因别飞外树物活部门无往船望新带队先力完却站代员机更 9您每风级跟笑啊孩万少直意夜比阶连车重便斗马哪化太指变社似士者干石满日决百原拿群究各 6本思解立河村 8难早论吗根共让相研今其书坐接应关信觉步反处记将千找争领或师结块跑谁草越字加脚紧爱等习阵怕月青半火法题建赶位唱海 7女任件感准张团屋离色脸片科倒睛利世刚且由送切星导晚表够整认响雪流未场该并底深刻平伟忙提确近亮轻讲农古黑告界拉名呀土清阳照办史改历转画造嘴此治北必服雨穿内识验传业菜爬睡兴形量咱观苦体众通冲合破友度术饭公旁房极南枪读沙岁线野坚空收算至政城劳落钱特围弟胜教热展包歌类渐强数乡呼性音答哥际旧神座章帮啦受系令跳非何牛取入岸敢掉忽种装顶急林停息句区衣般报叶压慢叔背细\"; [Page]
//备选汉字长度
length=base.length;
//创建内存图像
BufferedImageimage=BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//获取图形上下文
Graphicsg=image.getGraphics;
//创建随机类例子
Randomrandom=Random;
//设定图像背景色(是做背景所以偏淡)
g.Color(getRandColor(random,200,250));
g.fillRect(0,0,width,height);
//备选字体
StringfontTypes=...{
\"宋体\",\"新宋体\",\"黑体\",\"楷体\",\"隶书\"};
fontTypesLength=fontTypes.length;
//在图片背景上增加噪点
g.Color(getRandColor(random,160,200));
g.Font(Font(\"TimesNewRoman\",Font.PLAIN,14));
for(i=0;i<6;i)...{
g.drawString(\"*********************************************\",0,5*(i+2));
}
//取随机产生认证码(6个汉字)
//保存生成汉字
StringsRand=\"\";
for(i=0;i<6;i)...{
start=random.nextInt(length);
Stringrand=base.sub(start,start+1);
sRandrand;
//设置字体颜色
g.Color(getRandColor(random,10,150));
//设置字体
g.Font(Font(fontTypes[random.nextInt(fontTypesLength)],Font.BOLD,18+random.nextInt(6)));


//将此汉字画到图片上
g.drawString(rand,24*i+10+random.nextInt(8),24);
}
//将认证码存入session
session.Attribute(\"rand\",sRand);
g.dispose; [Page]
//输出图象到页面
ImageIO.write(image,\"JPEG\",response.getOutputStream);
%>

8

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: