欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Web制作登錄驗證碼實現(xiàn)代碼解析

 更新時間:2020年09月25日 14:33:04   作者:勤快的懶羊羊  
這篇文章主要介紹了Java Web制作登錄驗證碼實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

圖例如下

具體操作如下:

新建一個servlet,代碼如下:標記一個WebServlet,

1 @WebServlet(urlPatterns = {"/checkCode"}) //驗證碼Servlet

繪制驗證碼圖片的核心代碼:

int width = 100;
    int height = 50;
    //創(chuàng)建圖片對象
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

    //美化圖片
    Graphics g = image.getGraphics();
    //1:填充背景
    g.setColor(Color.pink);
    g.fillRect(0, 0, width, height);

    //畫邊框
    g.setColor(Color.blue);
    g.drawRect(0, 0, width - 1, height - 1);

    //生成一個驗證碼字符串
    String strCheckCode = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    Random random = new Random();
    StrCheckCode = "";
    for (int i = 1; i <= 4; i++) {
      int index = random.nextInt(strCheckCode.length());
      char ch = strCheckCode.charAt(index);
      StrCheckCode += ch;//拼接驗證碼
      g.drawString(ch + "", width / 5 * i, height / 2);
    }

    //畫干擾線
    for (int i = 0; i < 5; i++) {
      int x1 = random.nextInt(width);
      int x2 = random.nextInt(width);

      int y1 = random.nextInt(height);
      int y2 = random.nextInt(height);
      g.drawLine(x1, x2, y1, y2);
    }

    //輸出,顯示出來
    ImageIO.write(image, "jpg", resp.getOutputStream());
  }

首先是new一個BufferedImage,然后給定長和寬,之后是指邊框和背景色,接著使用隨機數(shù)生成4個字符繪制在圖片上,接著使用DrawLine繪隨機制干擾線,

然后在前端頁面引入圖片,然后給圖片綁定點擊事件,點擊后重新訪問servlet即可:

//點擊驗證碼圖片,重新生成新驗證
    $(function () {
      $("#imgCheckCode").click(function () {
        var img = document.getElementById("imgCheckCode");
        var date = new Date();
        img.src = "http://localhost:8080/blogs_war_exploded/checkCode?op=setCheckCode&a=" + date;
      })
    })
<div class="inputCheckCode">
      <div class="inputCheckCodeLeftIco">&#10148</div>
      <div class="inputCheckCodeRightInput">
        <input type="text" name="checkCode" id="checkCode" placeholder="驗證碼" autocomplete="off"/>
      </div>
      <img src="http://localhost:8080/blogs_war_exploded/checkCode?op=setCheckCode" id="imgCheckCode">
    </div>

最后輸出即可,效果如下:

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

相關文章

  • 淺談MyBatis-Plus學習之Oracle的主鍵Sequence設置的方法

    淺談MyBatis-Plus學習之Oracle的主鍵Sequence設置的方法

    這篇文章主要介紹了淺談MyBatis-Plus學習之Oracle的主鍵Sequence設置的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 一次排查@CacheEvict注解失效的經(jīng)歷及解決

    一次排查@CacheEvict注解失效的經(jīng)歷及解決

    這篇文章主要介紹了一次排查@CacheEvict注解失效的經(jīng)歷及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java?Chassis3負載均衡選擇器技術解密

    Java?Chassis3負載均衡選擇器技術解密

    這篇文章主要為大家介紹了Java?Chassis3負載均衡選擇器技術解密,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 淺談Java中強制類型轉(zhuǎn)換的問題

    淺談Java中強制類型轉(zhuǎn)換的問題

    下面小編就為大家?guī)硪黄獪\談Java中強制類型轉(zhuǎn)換的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • ElasticSearch6.2.3+head插件安裝的方法步驟

    ElasticSearch6.2.3+head插件安裝的方法步驟

    這篇文章主要介紹了ElasticSearch6.2.3+head插件安裝的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • Java使用redisson實現(xiàn)分布式鎖的示例詳解

    Java使用redisson實現(xiàn)分布式鎖的示例詳解

    這篇文章主要為大家詳細介紹了在Java項目中使用redisson實現(xiàn)分布式鎖,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下
    2023-07-07
  • spring如何快速穩(wěn)定解決循環(huán)依賴問題

    spring如何快速穩(wěn)定解決循環(huán)依賴問題

    這篇文章主要介紹了spring如何快速穩(wěn)定解決循環(huán)依賴問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java對象初始化過程代碼塊和構造器的調(diào)用順序

    Java對象初始化過程代碼塊和構造器的調(diào)用順序

    這篇文章主要介紹了Java對象初始化過程代碼塊和構造器的調(diào)用順序,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Java使用Redisson分布式鎖實現(xiàn)原理

    Java使用Redisson分布式鎖實現(xiàn)原理

    Redisson分布式鎖 之前的基于注解的鎖有一種鎖是基本redis的分布式鎖,這篇文章主要介紹了Java使用Redisson分布式鎖實現(xiàn)原理,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • SpringBoot配置文件的加載位置實例詳解

    SpringBoot配置文件的加載位置實例詳解

    springboot采納了建立生產(chǎn)就緒spring應用程序的觀點。 在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性。接下來通過本文給大家介紹SpringBoot配置文件的加載位置,感興趣的朋友一起看看吧
    2018-09-09

最新評論