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

Java 生成隨機(jī)驗證碼圖片的示例

 更新時間:2020年10月21日 11:08:38   作者:Marydon  
這篇文章主要介紹了Java 生成隨機(jī)驗證碼圖片的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

1.情景展示

  登錄時,生成隨機(jī)驗證碼圖片,如何實現(xiàn)?    

2.原因分析

  后臺生成驗證碼并生成圖片返回至前臺 

3.解決方案

  導(dǎo)包

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.RandomStringUtils;
import base.web.tools.WebUtils;

  獲取驗證碼請求處理

/**
 * 獲取驗證碼
 * @explain
 * @return 隨機(jī)數(shù)圖片
 */
public String getImage() {
    try {
        int width = 55;
        int height = 25;
        // 取得一個4位隨機(jī)數(shù)字字符串
        String s = RandomStringUtils.randomNumeric(4);
        HttpServletResponse response = WebUtils.getResponse();
        // 存入cookie,用于與用戶的輸入進(jìn)行比較
        Cookie cookie = new Cookie("validateCode", s);
        response.addCookie(cookie);
        response.setContentType("images/jpeg");
        response.setHeader("Cache-Control", "no-cache");
 
        ServletOutputStream out = response.getOutputStream();
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics g = image.getGraphics();
        // 設(shè)定背景色
        g.setColor(getRandColor(200, 250));
        g.fillRect(0, 0, width, height);
 
        // 設(shè)置字體
        Font mFont = new Font("宋體", Font.BOLD, 18);
        g.setFont(mFont);
 
        // 畫邊框
        // g.setColor(Color.BLACK);
        // g.drawRect(0, 0, width - 1, height - 1);
 
        // 生成隨機(jī)類
        Random random = new Random();
        // 將認(rèn)證碼顯示到圖象中
        g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
        // 將驗證碼畫進(jìn)圖片
        g.drawString(s, 5, 20);
        // 圖象生效
        g.dispose();
        // 輸出圖象到頁面
        ImageIO.write((BufferedImage) image, "JPEG", out);
        out.flush();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
 
/**
 * 給定范圍獲得隨機(jī)顏色
 * @explain
 * @param fc
 * @param bc
 * @return
 */
private Color getRandColor(int fc, int bc) {
    Random random = new Random();
    fc = (fc > 255) ? 255 : fc;
    bc = (bc > 255) ? 255 : bc;
    // 獲取3次
    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);
}

  html片段

<img src="<c:url value="/getImage.do"/>" id="randomImage" style="cursor: pointer;vertical-align: bottom" height="35px" width="100px" onclick='sjs()' />  

  js片段

function sjs () {
    // 獲取圖片請求后面加一個隨機(jī)參數(shù),是為了避免同一個請求瀏覽器拒絕向服務(wù)器發(fā)送請求的問題(緩存)
    $("#randomImage")[0].src = baseUrl + "/getImage.do?s=" + Math.random();
};

寫在最后

  哪位大佬如若發(fā)現(xiàn)文章存在紕漏之處或需要補充更多內(nèi)容,歡迎留言!??!

本文作者:Marydon

原文鏈接:https://www.cnblogs.com/Marydon20170307/p/12807842.html

以上就是Java 生成隨機(jī)驗證碼圖片的示例的詳細(xì)內(nèi)容,更多關(guān)于Java 生成驗證碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java實現(xiàn)圖形卡片排序游戲

    java實現(xiàn)圖形卡片排序游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)圖形卡片排序游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • SpringMVC中的異常處理機(jī)制詳解

    SpringMVC中的異常處理機(jī)制詳解

    SpringMVC提供了基于xml和基于注解的異常處理機(jī)制,一般情況下兩者都要進(jìn)行配置,xml異常處理機(jī)制主要用于處理xml方式產(chǎn)生的異常,注解異常處理機(jī)制主要用于處理基于注解方式產(chǎn)生的異常,這篇文章主要介紹了SpringMVC中的異常處理機(jī)制,需要的朋友可以參考下
    2024-05-05
  • java開發(fā)中嵌套類的詳解及實例

    java開發(fā)中嵌套類的詳解及實例

    這篇文章主要介紹了 java開發(fā)中嵌套類的詳解及實例的相關(guān)資料,一般把定義內(nèi)部類的外圍類成為包裝類(enclosing class)或者外部類,需要的朋友可以參考下
    2017-07-07
  • 使用Java實現(xiàn)在Excel中創(chuàng)建下拉列表

    使用Java實現(xiàn)在Excel中創(chuàng)建下拉列表

    下拉列表(下拉框)可以確保用戶僅從預(yù)先給定的選項中進(jìn)行選擇,這樣不僅能減少數(shù)據(jù)輸入錯誤,還能節(jié)省時間提高效率,下面我們就來看看如何在java中利用免費庫實現(xiàn)創(chuàng)建下拉列表吧
    2024-03-03
  • Java.lang.NullPointerException的錯誤解決

    Java.lang.NullPointerException的錯誤解決

    Java中NullPointerException是一種常見的運行時異常,通常發(fā)生在嘗試調(diào)用null對象的方法或訪問其屬性時,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • Kafka之kafka-topics.sh的使用解讀

    Kafka之kafka-topics.sh的使用解讀

    這篇文章主要介紹了Kafka之kafka-topics.sh的使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • RabbitMQ?延遲隊列實現(xiàn)訂單支付結(jié)果異步階梯性通知(實例代碼)

    RabbitMQ?延遲隊列實現(xiàn)訂單支付結(jié)果異步階梯性通知(實例代碼)

    這篇文章主要介紹了RabbitMQ?延遲隊列實現(xiàn)訂單支付結(jié)果異步階梯性通知,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • java教程之java程序編譯運行圖解(java程序運行)

    java教程之java程序編譯運行圖解(java程序運行)

    最近重新復(fù)習(xí)了一下java基礎(chǔ),在使用javap的過程中遇到了一些問題,這里便講講對于一個類文件如何編譯、運行、反編譯的。也讓自己加深一下印象
    2014-03-03
  • springboot攔截器不攔截靜態(tài)資源,只攔截controller的實現(xiàn)方法

    springboot攔截器不攔截靜態(tài)資源,只攔截controller的實現(xiàn)方法

    這篇文章主要介紹了springboot攔截器不攔截靜態(tài)資源,只攔截controller的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • windows環(huán)境下java開發(fā)工具maven的安裝教程圖解

    windows環(huán)境下java開發(fā)工具maven的安裝教程圖解

    Maven是一個項目管理和綜合工具。Maven提供了開發(fā)人員構(gòu)建一個完整的生命周期框架。這篇文章主要介紹了windows環(huán)境下java開發(fā)工具maven的安裝,非常不錯對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論

宁阳县| 常山县| 称多县| 蓬莱市| 历史| 吕梁市| 庆城县| 子长县| 万年县| 颍上县| 湘潭市| 泽州县| 吉水县| 永宁县| 金堂县| 东乡族自治县| 寿光市| 广河县| 景宁| 清水河县| 灵寿县| 牙克石市| 綦江县| 新丰县| 图木舒克市| 巨野县| 晋江市| 宁城县| 旬邑县| 阳山县| 双流县| 晋江市| 道真| 西安市| 封丘县| 巴南区| 瓦房店市| 辉南县| 南澳县| 顺义区| 唐河县|