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">➤</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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot解決no main manifest attribute錯誤
在開發(fā)Springboot項目時,使用java -jar命令運行jar包可能出現(xiàn)no main manifest attribute錯誤,本文就來介紹一下該錯誤的解決方法,感興趣的可以了解一下2024-09-09
SpringBoot+Redis執(zhí)行l(wèi)ua腳本的方法步驟
這篇文章主要介紹了SpringBoot+Redis執(zhí)行l(wèi)ua腳本的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
使用logback實現(xiàn)按自己的需求打印日志到自定義的文件里
這篇文章主要介紹了使用logback實現(xiàn)按自己的需求打印日志到自定義的文件里,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java爬蟲實現(xiàn)Jsoup利用dom方法遍歷Document對象
本文主要介紹了Java爬蟲實現(xiàn)Jsoup利用dom方法遍歷Document對象,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
SpringBoot項目打包war包時無法運行問題的解決方式
在開發(fā)工程中,使用啟動類啟動能夠正常啟動并測試,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項目打包war包時無法運行問題的解決方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-06-06
Java讀取制表符文本轉(zhuǎn)換為JSON實現(xiàn)實例
在Java開發(fā)中,處理各種數(shù)據(jù)格式是常見的任務(wù),本文將介紹如何使用Java讀取制表符文本文件,并將其轉(zhuǎn)換為JSON格式,以便于后續(xù)的數(shù)據(jù)處理和分析,我們將使用Java中的相關(guān)庫來實現(xiàn)這個過程,并提供詳細的代碼示例2024-01-01

