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

java實現(xiàn)簡單驗證碼生成

 更新時間:2019年10月28日 11:43:20   作者:KD-倘若沒有倘若  
這篇文章主要介紹了java實現(xiàn)簡單驗證碼生成,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

簡單驗證碼java實現(xiàn)--servlet類生成 驗證碼img,并寫入session

老師給的源碼,在此做個記錄,簡單驗證碼,java繪圖

在此鳴謝并附上源碼:.

// 
package app61;

import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import java.awt.image.*;

public class VerifyCode extends HttpServlet {

private Font mFont = new Font("Times New Roman", Font.PLAIN, 18); //設(shè)置字體

public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//取得一個1000-9999的隨機數(shù)
 HttpSession session = request.getSession(true);
 response.setContentType("image/gif");
 response.setHeader("Pragma", "No-cache");
 response.setHeader("Cache-Control", "no-cache");
 response.setDateHeader("Expires", 0);
 int width = 60, height = 20;

 ServletOutputStream out = response.getOutputStream();
 BufferedImage image = new BufferedImage(width, height,
 BufferedImage.TYPE_INT_RGB); //設(shè)置圖片大小的
 Graphics gra = image.getGraphics();
 Random random = new Random();
 gra.setColor(getRandColor(200, 250)); //設(shè)置背景色rand墊底
 gra.fillRect(0, 0, width, height);
 gra.setColor(Color.black); //設(shè)置字體色
 gra.setFont(mFont);
 // 隨機產(chǎn)生155條干擾線,使圖象中的認證碼不易被其它程序探測到
 gra.setColor(getRandColor(160, 200));
 for (int i = 0; i < 155; i++) {
 int x = random.nextInt(width);
 int y = random.nextInt(height);
 int xl = random.nextInt(12);
 int yl = random.nextInt(12);
 gra.drawLine(x, y, x + xl, y + yl);
 }

 // 取隨機產(chǎn)生的認證碼(4位數(shù)字)
 String sRand = "";
 for (int i = 0; i < 4; i++) {
 String rand = String.valueOf(random.nextInt(10));
 sRand += rand;
 // 將認證碼顯示到圖象中
 gra.setColor(new Color(20 + random.nextInt(110),
 20 + random.nextInt(110),
 20 + random.nextInt(110))); //調(diào)用函數(shù)出來的顏色相同,可能是因為種子太接近,所以只能直接生成
 gra.drawString(rand, 13 * i + 6, 16);
 }
 session.setAttribute("rand",sRand);
 // session.setAttribute("getImg", sRand);
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
 encoder.encode(image);
 out.close();
}

static Color getRandColor(int fc, int bc) { //給定范圍獲得隨機顏色
 Random random = new Random();
 if (fc > 255)
 fc = 255;
 if (bc > 255)
 bc = 255;
 int r = fc + random.nextInt(bc - fc);
 int g = fc + random.nextInt(bc - fc);
 int b = fc + random.nextInt(bc - fc);
 return new Color(r, g, b);
}

 //Clean up resources
 public void destroy() {
 }
}

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

相關(guān)文章

  • SpringBoot消息國際化配置實現(xiàn)過程解析

    SpringBoot消息國際化配置實現(xiàn)過程解析

    這篇文章主要介紹了SpringBoot消息國際化配置實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 后端如何接收格式為x-www-form-urlencoded的數(shù)據(jù)

    后端如何接收格式為x-www-form-urlencoded的數(shù)據(jù)

    x-www-form-urlencoded格式是一種常見的HTTP請求數(shù)據(jù)格式,它將請求參數(shù)編碼為鍵值對的形式,以便于傳輸和解析,下面這篇文章主要給大家介紹了關(guān)于后端如何接收格式為x-www-form-urlencoded的數(shù)據(jù),需要的朋友可以參考下
    2023-05-05
  • SpringBoot?jwt的token如何刷新

    SpringBoot?jwt的token如何刷新

    這篇文章主要給大家介紹了關(guān)于SpringBoot?jwt的token如何刷新的相關(guān)資料,Json web token(JWT)是為了在網(wǎng)絡應用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標準,需要的朋友可以參考下
    2023-07-07
  • Java實現(xiàn)微信網(wǎng)頁授權(quán)的示例代碼

    Java實現(xiàn)微信網(wǎng)頁授權(quán)的示例代碼

    這篇文章主要介紹了Java實現(xiàn)微信網(wǎng)頁授權(quán)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 深入理解Java線程池從設(shè)計思想到源碼解讀

    深入理解Java線程池從設(shè)計思想到源碼解讀

    這篇文章主要介紹了深入理解Java線程池從設(shè)計思想到源碼解讀,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java多線程的具體介紹與使用筆記小結(jié)

    Java多線程的具體介紹與使用筆記小結(jié)

    Java多線程詳細介紹線程是程序執(zhí)行的最小單元,多線程是指程序同一時間可以有多個執(zhí)行單元運行(這個與你的CPU核心有關(guān))。 接下來通過本文給大家介紹Java多線程的具體介紹與使用筆記小結(jié),感興趣的朋友一起看看吧
    2021-05-05
  • 解決mybatisPlus null 值更新的問題

    解決mybatisPlus null 值更新的問題

    這篇文章主要介紹了解決mybatisPlus null 值更新的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • springcloud使用profile實現(xiàn)多環(huán)境配置方式

    springcloud使用profile實現(xiàn)多環(huán)境配置方式

    這篇文章主要介紹了springcloud使用profile實現(xiàn)多環(huán)境配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 通過MyBatis讀取數(shù)據(jù)庫數(shù)據(jù)并提供rest接口訪問

    通過MyBatis讀取數(shù)據(jù)庫數(shù)據(jù)并提供rest接口訪問

    這篇文章主要介紹了通過MyBatis讀取數(shù)據(jù)庫數(shù)據(jù)并提供rest接口訪問 的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • Spring AI集成DeepSeek的詳細步驟

    Spring AI集成DeepSeek的詳細步驟

    DeepSeek 作為一款卓越的國產(chǎn) AI 模型,越來越多的公司考慮在自己的應用中集成,對于 Java 應用來說,我們可以借助 Spring AI 集成 DeepSeek,非常簡單方便,本文給大家介紹了Spring AI集成DeepSeek的詳細步驟,需要的朋友可以參考下
    2025-02-02

最新評論

江川县| 永兴县| 福清市| 潼南县| 平谷区| 安达市| 浮山县| 乐至县| 定陶县| 五常市| 淮安市| 保德县| 镇康县| 邯郸县| 潞城市| 育儿| 乌审旗| 嵊州市| 武夷山市| 合川市| 林甸县| 灵石县| 中江县| 盖州市| 双流县| 鹤山市| 连江县| 琼结县| 平顶山市| 尼勒克县| 安宁市| 广灵县| 宜春市| 东乌| 沙坪坝区| 霍城县| 简阳市| 鸡泽县| 岢岚县| 都昌县| 福泉市|