亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

本文實例為大家分享了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的隨機(jī)數(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);
 // 隨機(jī)產(chǎn)生155條干擾線,使圖象中的認(rèn)證碼不易被其它程序探測到
 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);
 }

 // 取隨機(jī)產(chǎn)生的認(rèn)證碼(4位數(shù)字)
 String sRand = "";
 for (int i = 0; i < 4; i++) {
 String rand = String.valueOf(random.nextInt(10));
 sRand += rand;
 // 將認(rèn)證碼顯示到圖象中
 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) { //給定范圍獲得隨機(jī)顏色
 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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MybatisPlus自帶的queryWrapper實現(xiàn)時間倒序方式

    MybatisPlus自帶的queryWrapper實現(xiàn)時間倒序方式

    這篇文章主要介紹了MybatisPlus自帶的queryWrapper實現(xiàn)時間倒序方式,具有很好的參考價值,希望對的有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • vscode快速引入第三方j(luò)ar包發(fā)QQ郵件

    vscode快速引入第三方j(luò)ar包發(fā)QQ郵件

    這篇文章主要介紹了vscode快速引入第三方j(luò)ar包發(fā)QQ郵件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • elasticsearch構(gòu)造Client實現(xiàn)java客戶端調(diào)用接口示例分析

    elasticsearch構(gòu)造Client實現(xiàn)java客戶端調(diào)用接口示例分析

    這篇文章主要為大家介紹了elasticsearch構(gòu)造Client實現(xiàn)java客戶端調(diào)用接口示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • idea創(chuàng)建spring boot項目及java版本只能選擇17和21的問題

    idea創(chuàng)建spring boot項目及java版本只能選擇17和21的問題

    這篇文章主要介紹了idea創(chuàng)建spring boot項目及java版本只能選擇17和21的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • java 創(chuàng)建線程的四種方式

    java 創(chuàng)建線程的四種方式

    這篇文章主要介紹了java 創(chuàng)建線程的四種方式,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Java實現(xiàn)滑動驗證碼(前端部分)

    Java實現(xiàn)滑動驗證碼(前端部分)

    這篇文章主要為大家介紹了如何用Java語言實現(xiàn)滑動驗證碼的生成(前端部分),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-10-10
  • Windows10系統(tǒng)下JDK1.8環(huán)境變量的配置

    Windows10系統(tǒng)下JDK1.8環(huán)境變量的配置

    今天帶大家學(xué)習(xí)在Windows10系統(tǒng)下怎么配置JDK1.8環(huán)境變量,文中有非常詳細(xì)的安裝及配置教程,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot+MQTT+apollo實現(xiàn)訂閱發(fā)布功能的示例

    SpringBoot+MQTT+apollo實現(xiàn)訂閱發(fā)布功能的示例

    這篇文章主要介紹了SpringBoot+MQTT+apollo實現(xiàn)訂閱發(fā)布功能的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Idea如何使用Fast Request接口調(diào)試

    Idea如何使用Fast Request接口調(diào)試

    這篇文章主要介紹了Idea如何使用Fast Request接口調(diào)試問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式

    Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式

    EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,下面我們就來學(xué)習(xí)一下EasyExcel如何實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式吧
    2023-11-11

最新評論