资源描述:
《jsp彩色验证码字母数字》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JSP彩色验证码字母+数字.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了。他只是比对方更珍惜这份感情。本文说明了如何在JSP中生成彩色的由数字加字母随机组成的验证码,以及不刷新页面改变验证码的方法.本文参考了网友的一些代码,并在此基础上做了一些修改!产生验证码图片的文件image.jsp<%@pagecontentType="image/jpeg"import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"pageEncoding="UTF-8"%><%!ColorgetRand
2、Color(intfc,intbc){//给定范围获得随机颜色Randomrandom=newRandom();if(fc>255)fc=255;if(bc>255)bc=255;intr=fc+random.nextInt(bc-fc);intg=fc+random.nextInt(bc-fc);intb=fc+random.nextInt(bc-fc);returnnewColor(r,g,b);}%><%//设置页面不缓存response.setHeader("Pragma","No-cache");response.setHeader("Cache-Co
3、ntrol","no-cache");response.setDateHeader("Expires",0);//在内存中创建图象intwidth=80,height=20;BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//获取图形上下文Graphicsg=image.getGraphics();//生成随机类Randomrandom=newRandom();//设定背景色g.setColor(getRandColor(200,250));g.fillRe
4、ct(0,0,width,height);//设定字体g.setFont(newFont("TimesNewRoman",Font.BOLD,18));//画边框g.setColor(newColor(0,0,0));g.drawRect(0,0,width-1,height-1);//随机产生155条干扰线,使图象中的认证码不易被其它程序探测到g.setColor(getRandColor(160,200));for(inti=0;i<155;i++){intx=random.nextInt(width);inty=random.nextInt(height)
5、;intxl=random.nextInt(12);intyl=random.nextInt(12);g.drawLine(x,y,x+xl,y+yl);}//取随机产生的认证码(4位数字)StringsRand="";for(inti=0;i<4;i++){Stringrand=null;//随机生成数字或者字母if(random.nextInt(10)>5){rand=String.valueOf((char)(random.nextInt(10)+48));}else{rand=String.valueOf((char)(random.nextInt(26
6、)+65));}sRand+=rand;//将认证码显示到图象中g.setColor(newColor(random.nextInt(80),random.nextInt(80),random.nextInt(80)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成g.drawString(rand,15*i+10,16);}//将认证码存入SESSIONsession.setAttribute("rand",sRand);//图象生效g.dispose();//输出图象到页面ImageIO.write(image,"JPEG",respo
7、nse.getOutputStream());%>使用验证码图片的文件a.jsp<%@pagecontentType="text/html;charset=gb2312"%>
认证码输入页面8、">