當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSP实例-彩色验证码
生活随笔
收集整理的這篇文章主要介紹了
JSP实例-彩色验证码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
image.java用于產(chǎn)生彩色驗(yàn)證碼,其代碼如下:
package test; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO;public class Image {//驗(yàn)證碼圖片中可以出現(xiàn)的字符集private char mapTable[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'};//生成彩色的驗(yàn)證碼圖片。width表示圖片寬度;height表示圖片高度。public String getCertPic(int width, int height, OutputStream os){if(width<=0) width=60;if(height<=0) height=20;BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);//獲取圖形上下文Graphics g=image.getGraphics();//設(shè)置背景g.setColor(new Color(0XDCDCDC));g.fillRect(0,0,width,height);//畫邊框g.setColor(Color.black);g.drawRect(0,0,width-1,height-1);//隨機(jī)產(chǎn)生認(rèn)證碼String strEnsure="";//產(chǎn)生4位認(rèn)證碼for(int i=0;i<4;i++){strEnsure+=mapTable[(int)(mapTable.length*Math.random())];}//將認(rèn)證碼顯示到圖像中g(shù).setColor(Color.black);g.setFont(new Font("Atlantic Inine",Font.PLAIN,18));String str=strEnsure.substring(0,1);g.drawString(str,8,17);str=strEnsure.substring(1,2);g.drawString(str,20,15);str=strEnsure.substring(2,3);g.drawString(str, 35, 18);str=strEnsure.substring(3,4);g.drawString(str,45,15);//隨機(jī)產(chǎn)生10個干擾點(diǎn)Random rand=new Random();for(int i=0;i<10;i++){int x=rand.nextInt(width);int y=rand.nextInt(height);g.drawOval(x, y, 1, 1);}//釋放圖形上下文g.dispose();try{//輸出圖像到頁面ImageIO.write(image, "JPEG", os);}catch(IOException e){return "";}return strEnsure; } }
image.jsp負(fù)責(zé)調(diào)用JavaBean顯示驗(yàn)證碼圖片,以及將得到的string形式驗(yàn)證碼放入session中。其代碼如下: <jsp:useBean id="image" scope="session" class="test.Image"/> <% //得到生成的驗(yàn)證碼,并將驗(yàn)證碼以圖片方式輸出 String str=image.getCertPic(0,0,response.getOutputStream()); //將認(rèn)證碼存入session session.setAttribute("certCode",str);%>
check,jsp負(fù)責(zé)比對用戶輸入的驗(yàn)證碼和圖片顯示的驗(yàn)證碼是否一致,其代碼如下: <% //得到用戶輸入的驗(yàn)證碼 String certCode=request.getParameter("certCode"); //比對用戶輸入的驗(yàn)證碼和生成的驗(yàn)證碼是否相同 if(certCode.equals((String)session.getAttribute("certCode")))out.print("驗(yàn)證碼輸入正確");elseout.print("驗(yàn)證碼輸入錯誤");%>
運(yùn)行index.jsp進(jìn)入登陸界面,截圖如下:
1.若輸入正確的驗(yàn)證碼,截圖如下:
點(diǎn)擊”確定“后跳轉(zhuǎn)到check.jsp頁面,顯示輸入驗(yàn)證碼正確:
2.若輸入錯誤的驗(yàn)證碼,截圖如下:
點(diǎn)擊”確定“后跳轉(zhuǎn)到check.jsp頁面,顯示輸入驗(yàn)證碼錯誤:
總結(jié)
以上是生活随笔為你收集整理的JSP实例-彩色验证码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用encodeURl()进行编解码
- 下一篇: div的相关操作