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

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

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

圖例如下

具體操作如下:

新建一個(gè)servlet,代碼如下:標(biāo)記一個(gè)WebServlet,

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

繪制驗(yàn)證碼圖片的核心代碼:

int width = 100;
    int height = 50;
    //創(chuàng)建圖片對(duì)象
    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);

    //生成一個(gè)驗(yàn)證碼字符串
    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;//拼接驗(yàn)證碼
      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一個(gè)BufferedImage,然后給定長和寬,之后是指邊框和背景色,接著使用隨機(jī)數(shù)生成4個(gè)字符繪制在圖片上,接著使用DrawLine繪隨機(jī)制干擾線,

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

//點(diǎn)擊驗(yàn)證碼圖片,重新生成新驗(yàn)證
    $(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="驗(yàn)證碼" autocomplete="off"/>
      </div>
      <img src="http://localhost:8080/blogs_war_exploded/checkCode?op=setCheckCode" id="imgCheckCode">
    </div>

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

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

相關(guān)文章

  • Springboot解決no main manifest attribute錯(cuò)誤

    Springboot解決no main manifest attribute錯(cuò)誤

    在開發(fā)Springboot項(xiàng)目時(shí),使用java -jar命令運(yùn)行jar包可能出現(xiàn)no main manifest attribute錯(cuò)誤,本文就來介紹一下該錯(cuò)誤的解決方法,感興趣的可以了解一下
    2024-09-09
  • Springboot實(shí)現(xiàn)郵件發(fā)送功能

    Springboot實(shí)現(xiàn)郵件發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了Springboot實(shí)現(xiàn)郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • SpringBoot+Redis執(zhí)行l(wèi)ua腳本的方法步驟

    SpringBoot+Redis執(zhí)行l(wèi)ua腳本的方法步驟

    這篇文章主要介紹了SpringBoot+Redis執(zhí)行l(wèi)ua腳本的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 使用Redis incr解決并發(fā)問題的操作

    使用Redis incr解決并發(fā)問題的操作

    這篇文章主要介紹了使用Redis incr解決并發(fā)問題的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里

    使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里

    這篇文章主要介紹了使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java爬蟲實(shí)現(xiàn)Jsoup利用dom方法遍歷Document對(duì)象

    Java爬蟲實(shí)現(xiàn)Jsoup利用dom方法遍歷Document對(duì)象

    本文主要介紹了Java爬蟲實(shí)現(xiàn)Jsoup利用dom方法遍歷Document對(duì)象,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java使用遞歸解決算法問題的實(shí)例講解

    Java使用遞歸解決算法問題的實(shí)例講解

    遞歸算法的實(shí)質(zhì)是把問題分解成規(guī)??s小的同類問題的子問題,然后遞歸調(diào)用方法來表示問題的解,這里我們就來看幾個(gè)Java使用遞歸解決算法問題的實(shí)例講解
    2016-06-06
  • Java微信跳一跳操作指南

    Java微信跳一跳操作指南

    這篇文章主要為大家詳細(xì)介紹了Java微信跳一跳操作指南,通過adb來控制手機(jī)進(jìn)行操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式

    SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式

    在開發(fā)工程中,使用啟動(dòng)類啟動(dòng)能夠正常啟動(dòng)并測(cè)試,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目打包war包時(shí)無法運(yùn)行問題的解決方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Java讀取制表符文本轉(zhuǎn)換為JSON實(shí)現(xiàn)實(shí)例

    Java讀取制表符文本轉(zhuǎn)換為JSON實(shí)現(xiàn)實(shí)例

    在Java開發(fā)中,處理各種數(shù)據(jù)格式是常見的任務(wù),本文將介紹如何使用Java讀取制表符文本文件,并將其轉(zhuǎn)換為JSON格式,以便于后續(xù)的數(shù)據(jù)處理和分析,我們將使用Java中的相關(guān)庫來實(shí)現(xiàn)這個(gè)過程,并提供詳細(xì)的代碼示例
    2024-01-01

最新評(píng)論

石景山区| 青铜峡市| 镇赉县| 玛多县| 浮山县| 那坡县| 从江县| 伊宁县| 石阡县| 河东区| 高平市| 五河县| 博湖县| 长顺县| 娄底市| 乐安县| 大英县| 白城市| 龙井市| 富民县| 辽宁省| 清丰县| 鸡东县| 吉林市| 甘泉县| 麦盖提县| 永定县| 芦山县| 临湘市| 银川市| 桃园县| 福建省| 玉门市| 安福县| 青铜峡市| 灌阳县| 虎林市| 贞丰县| 元氏县| 珠海市| 嘉祥县|