資源描述:
《jsp彩色驗(yàn)證碼字母數(shù)字》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、JSP彩色驗(yàn)證碼字母+數(shù)字.txt兩個(gè)人吵架,先說(shuō)對(duì)不起的人,并不是認(rèn)輸了,并不是原諒了。他只是比對(duì)方更珍惜這份感情。本文說(shuō)明了如何在JSP中生成彩色的由數(shù)字加字母隨機(jī)組成的驗(yàn)證碼,以及不刷新頁(yè)面改變驗(yàn)證碼的方法.本文參考了網(wǎng)友的一些代碼,并在此基礎(chǔ)上做了一些修改!產(chǎn)生驗(yàn)證碼圖片的文件image.jsp<%@pagecontentType="image/jpeg"import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"pageEncoding="UTF-8"%><%!ColorgetRand
2、Color(intfc,intbc){//給定范圍獲得隨機(jī)顏色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);}%><%//設(shè)置頁(yè)面不緩存response.setHeader("Pragma","No-cache");response.setHeader("Cache-Co
3、ntrol","no-cache");response.setDateHeader("Expires",0);//在內(nèi)存中創(chuàng)建圖象intwidth=80,height=20;BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//獲取圖形上下文Graphicsg=image.getGraphics();//生成隨機(jī)類(lèi)Randomrandom=newRandom();//設(shè)定背景色g.setColor(getRandColor(200,250));g.fillRe
4、ct(0,0,width,height);//設(shè)定字體g.setFont(newFont("TimesNewRoman",Font.BOLD,18));//畫(huà)邊框g.setColor(newColor(0,0,0));g.drawRect(0,0,width-1,height-1);//隨機(jī)產(chǎn)生155條干擾線,使圖象中的認(rèn)證碼不易被其它程序探測(cè)到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);}//取隨機(jī)產(chǎn)生的認(rèn)證碼(4位數(shù)字)StringsRand="";for(inti=0;i<4;i++){Stringrand=null;//隨機(jī)生成數(shù)字或者字母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;//將認(rèn)證碼顯示到圖象中g(shù).setColor(newColor(random.nextInt(80),random.nextInt(80),random.nextInt(80)));//調(diào)用函數(shù)出來(lái)的顏色相同,可能是因?yàn)榉N子太接近,所以只能直接生成g.drawString(rand,15*i+10,16);}//將認(rèn)證碼存入SESSIONsession.setAttribute("rand",sRand);//圖象生效g.dispose();//輸出圖象到頁(yè)面ImageIO.write(image,"JPEG",respo
7、nse.getOutputStream());%>使用驗(yàn)證碼圖片的文件a.jsp<%@pagecontentType="text/html;charset=gb2312"%>
認(rèn)證碼輸入頁(yè)面8、">