最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java制作簡單驗證碼功能

 更新時間:2017年11月08日 14:15:03   作者:evan_qb  
這篇文章主要為大家詳細介紹了java制作簡單驗證碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

在這里我們需要用到java的畫筆工具,所以我們需要導入以下包
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"%> 
  <!-- 以上導入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è)置坐標和寬高 
   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é)果如下:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于SpringBoot實現(xiàn)文件秒傳功能

    基于SpringBoot實現(xiàn)文件秒傳功能

    在開發(fā)Web應用時,文件上傳是一個常見需求,然而,當用戶需要上傳大文件或相同文件多次時,會造成帶寬浪費和服務器存儲冗余,此時可以使用文件秒傳技術(shù)通過識別重復文件,本文就給大家介紹了如何基于SpringBoot實現(xiàn)文件秒傳功能,需要的朋友可以參考下
    2025-04-04
  • 你知道將Bean交給Spring容器管理有幾種方式(推薦)

    你知道將Bean交給Spring容器管理有幾種方式(推薦)

    Spring核心是?IOC?和?AOP?,我們在Spring項目中,我們需要將Bean交給Spring容器,也就是IOC管理,這樣你才可以使用注解來進行依賴注入,這篇文章主要介紹了你知道將Bean交給Spring容器管理有幾種方式,需要的朋友可以參考下
    2022-10-10
  • 關(guān)于IDEA中spring-cloud-starter-alibaba-nacos-discovery 無法引入問題

    關(guān)于IDEA中spring-cloud-starter-alibaba-nacos-discovery 無法引入問題

    這篇文章主要介紹了關(guān)于IDEA中spring-cloud-starter-alibaba-nacos-discovery 無法引入問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Java Swing組件單選框JRadioButton用法示例

    Java Swing組件單選框JRadioButton用法示例

    這篇文章主要介紹了Java Swing組件單選框JRadioButton用法,結(jié)合具體實例形式分析了Swing單選框JRadioButton的使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2017-11-11
  • Java中BufferedReader與Scanner讀入的區(qū)別詳解

    Java中BufferedReader與Scanner讀入的區(qū)別詳解

    這篇文章主要介紹了Java中BufferedReader與Scanner讀入的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java eclipse 中文件的上傳和下載示例解析

    java eclipse 中文件的上傳和下載示例解析

    這篇文章主要介紹了eclipse java中文件的上傳和下載示例解析,文件上傳,瀏覽器在上傳的過程中是將文件以流的形式提交到服務器端的。對此感興趣的小伙伴可以了解一下
    2020-07-07
  • 使用Spring的JAVA Mail支持簡化郵件發(fā)送功能

    使用Spring的JAVA Mail支持簡化郵件發(fā)送功能

    這篇文章主要為大家詳細介紹了使用Spring的JAVA Mail支持簡化郵件發(fā)送功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java countDownLatch如何實現(xiàn)多線程任務阻塞等待

    Java countDownLatch如何實現(xiàn)多線程任務阻塞等待

    這篇文章主要介紹了Java countDownLatch如何實現(xiàn)多線程任務阻塞等待,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • java8使用filter()取出自己所需數(shù)據(jù)

    java8使用filter()取出自己所需數(shù)據(jù)

    這篇文章主要介紹了java8使用filter()取出自己所需數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Spring Web MVC和Hibernate的集成配置詳解

    Spring Web MVC和Hibernate的集成配置詳解

    這篇文章主要介紹了Spring Web MVC和Hibernate的集成配置詳解,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論

天门市| 珲春市| 易门县| 江华| 台北市| 阳江市| 天台县| 美姑县| 航空| 武穴市| 郎溪县| 乐业县| 登封市| 灵石县| 铁岭市| 渑池县| 邮箱| 榆社县| 西盟| 长阳| 府谷县| 延边| 工布江达县| 蒲江县| 莱州市| 禹城市| 石渠县| 江山市| 武邑县| 财经| 磴口县| 蒙自县| 霍山县| 宁蒗| 通山县| 伊春市| 和田市| 九江县| 湛江市| 长阳| 中超|