溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java制作簡單驗證碼功能

發(fā)布時間:2020-09-12 11:17:20 來源:腳本之家 閱讀:164 作者:evan_qb 欄目:編程語言

本文實例為大家分享了java制作簡單驗證碼的具體代碼,供大家參考,具體內(nèi)容如下

在這里我們需要用到j(luò)ava的畫筆工具,所以我們需要導(dǎo)入以下包
import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*"

然后我就使用java腳本來實現(xiàn)一個小小的驗證碼

<%@ page contentType="image/jpeg; charset=utf-8" 
  language="java" import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*" 
  pageEncoding="UTF-8"%> 
  <!-- 以上導(dǎo)入awt和awt.image包 --> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" > 
  
 <title>驗證碼</title> 
  
 <meta http-equiv="pragma" content="no-cache"> 
 <meta http-equiv="cache-control" content="no-cache"> 
 <meta http-equiv="expires" content="0">  
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
 <meta http-equiv="description" content="This is my page"> 
 
 </head> 
 
 <body> 
  <%! 
   //獲取隨機顏色 
   public Color getColor(){ 
    Random random = new Random(); 
    //使用rgb()隨機產(chǎn)生顏色 
    int r = random.nextInt(256); 
    int g = random.nextInt(256); 
    int b = random.nextInt(256); 
     
    return new Color(r,g,b); 
   } 
    
   //獲取隨機數(shù)字 產(chǎn)生一個4位數(shù) 
   public String getNum(){ 
    String str = ""; 
    Random random = new Random(); 
    for(int i = 0;i < 4;i++){ 
     str += random.nextInt(10); //0-9 
    } 
    return str; 
   } 
   %> 
   
   <% 
   /* 清除緩存 */ 
   response.setHeader("pragma", "mo-cache"); 
   response.setHeader("cache-control", "no-cache"); 
   response.setDateHeader("expires", 0); 
   //產(chǎn)生矩形框 
   BufferedImage image = new BufferedImage(80,30,BufferedImage.TYPE_INT_RGB); 
   //獲取畫筆工具 
   Graphics g = image.getGraphics(); 
   //設(shè)置矩形框的顏色 
   g.setColor(new Color(200,200,200)); 
   //設(shè)置坐標(biāo)和寬高 
   g.fillRect(0, 0, 80, 30); 
    
   //隨機產(chǎn)生干擾線 
   for(int i = 0;i < 30;i++){ 
    Random random = new Random(); 
    int x = random.nextInt(80); 
    int y = random.nextInt(30); 
    int x1 = random.nextInt(x + 10); 
    int y1 = random.nextInt(y + 10); 
    //設(shè)置隨機顏色 
    g.setColor(getColor()); 
    //畫出來 
    g.drawLine(x, y, x1, y1); 
   } 
    
   //字的顏色和數(shù)字 
   g.setFont(new Font("Microsoft YaHei",Font.BOLD,16)); 
   g.setColor(Color.BLACK); 
   //獲取隨機數(shù)字 
   String checkNum = getNum(); 
    
   //給字拼接空格 
   StringBuffer sb = new StringBuffer(); 
   for(int i = 0;i < checkNum.length();i++){ 
    sb.append(checkNum.charAt(i) + " "); 
   } 
   //畫出數(shù)字 
   g.drawString(sb.toString(), 15, 20); 
   //存入session域中 
   session.setAttribute("CHECKNUM", checkNum); //例如1010 
   //將圖像以jpeg的形式通過字節(jié)流輸出 
   ImageIO.write(image, "jpeg", response.getOutputStream()); 
   //清除緩存 
   out.clear(); 
   //放入body中 
   out = pageContext.pushBody(); 
   %> 
   
 </body> 
</html>

 結(jié)果如下:

java制作簡單驗證碼功能

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI