今天就跟大家聊聊有關(guān)利用Java實現(xiàn)一個驗證碼功能,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
要導(dǎo)入servlet-api.jar包
創(chuàng)建驗證碼的Util工具類:
先創(chuàng)建圖片并生成隨機的驗證碼字母
設(shè)置圖片的底色,并用setFont函數(shù)將驗證碼畫在圖片上,如果想讓驗證碼難一點,可以添加for循環(huán)的代碼給圖片增加旋轉(zhuǎn)角度
給驗證碼增加干擾線,提高安全性
設(shè)置邊框
創(chuàng)建VerifyPic的servlet,通過Util類獲取代碼,并存入session中,然后輸送去前端頁面
前端頁面驗證碼如下:
完整Util工具類代碼如下:
package com.sport.util; import java.awt.*; import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.Map; public class VerifyUtil { public static MapgenerateVerify(){ //創(chuàng)建一張圖片 BufferedImage verifyPic = new BufferedImage(120,40,BufferedImage.TYPE_3BYTE_BGR); //通過圖片獲取畫筆 Graphics2D g = verifyPic.createGraphics(); //準備一個字母+數(shù)字的字典 String letters = "23456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; //規(guī)定驗證碼的位數(shù) int verifyLength = 4; //生成隨機驗證碼 String verifyCode = ""; //循環(huán)取值 for(int i=0; i data = new HashMap (); data.put("verifyCode", verifyCode); data.put("verifyPic", verifyPic); return data; } }