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

SpringBoot整合Kaptcha實現(xiàn)圖形驗證碼功能

 更新時間:2023年09月28日 10:36:22   作者:DaenCode  
這篇文章主要介紹了SpringBoot整合Kaptcha實現(xiàn)圖形驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

引入依賴

首先引入Kaptcha的starter依賴

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>kaptcha-spring-boot-starter</artifactId>
            <version>1.1.0</version>
</dependency>

驗證碼配置類

/**
 * 圖形驗證碼配置類
 */
@Configuration
@Slf4j
public class CaptchaConfig {
    /**
     * 驗證碼配置
     * @return
     */
    @Bean
    @Qualifier("captchaProducer")
    public DefaultKaptcha kaptcha() {
        DefaultKaptcha kaptcha = new DefaultKaptcha();
        Properties properties = new Properties();
        //驗證碼個數(shù)
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
        //字體間隔
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE,"8");
        //干擾實現(xiàn)類
        properties.setProperty(Constants.KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
        //圖片樣式
        properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.WaterRipple");
        //文字來源
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING, "0123456789");
        Config config = new Config(properties);
        kaptcha.setConfig(config);
        return kaptcha;
    }
}

controller

主要步驟如下:

  • 1.生成驗證碼字符串
  • 2.生成圖形形式驗證碼
  • 3.輸出到客戶端
  • 4.關閉流
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
    @Autowired
    private Producer producer;
    /**
     * 生成圖形驗證碼
     * 1.生成驗證碼字符串
     * 2.生成圖形形式驗證碼
     * 3.輸出到客戶端
     * 4.關閉流
     * @param request
     * @param response
     */
    @GetMapping("captcha")
    public void getCaptcha(HttpServletRequest request, HttpServletResponse response){
        //生成字符串驗證碼
        String code= producer.createText();
        //創(chuàng)建圖形驗證碼
        BufferedImage image=producer.createImage(code);
        try {
            //寫到瀏覽器,向客戶端發(fā)送數(shù)據(jù)
            ServletOutputStream outputStream=null;
            //獲取輸出流
            outputStream=response.getOutputStream();
            ImageIO.write(image,"jpg",outputStream);
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

ServletOutputStream

作用:用戶向客戶端發(fā)送二進制數(shù)據(jù)。提供了字節(jié)數(shù)據(jù)寫入響應輸出流的方式,用于生成和發(fā)送動態(tài)內(nèi)容或者文件的響應。

應用場景

  • 向客戶端發(fā)送圖像、音頻或者視頻媒體文件。
  • 生成發(fā)送PDF、EXCEL等等二進制文件。
  • 將二進制數(shù)據(jù)流式傳遞給客戶端。

使用步驟

  • 通過HttpservletRespon獲取輸出流getOutputStream。
  • 通過ImageIO.write將圖像寫入到輸出流中。
  • 緩沖輸出流。
  • 關閉輸出流。

效果

寫在最后

以上就是SpringBoot整合Kaptcha實現(xiàn)圖形驗證碼功能的詳細內(nèi)容,更多關于SpringBoot整合Kaptcha驗證碼的資料請關注腳本之家其它相關文章!

相關文章

  • Java常用對象操作工具代碼實例

    Java常用對象操作工具代碼實例

    這篇文章主要介紹了Java常用對象操作工具代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯誤解決辦法

    java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list

    這篇文章主要介紹了java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯誤解決辦法的相關資料,需要的朋友可以參考下
    2016-12-12
  • Java基礎泛型詳情

    Java基礎泛型詳情

    這篇文章主要介紹了Java基礎泛型詳情,泛型是JDK5中引入的特性,它提供了編譯時類型安全檢測機制,該機制允許在編譯時檢測到非法的類型,下面文章的詳細介紹,需要的朋友可以參考一下
    2022-04-04
  • RxJava的消息發(fā)送和線程切換實現(xiàn)原理

    RxJava的消息發(fā)送和線程切換實現(xiàn)原理

    這篇文章主要介紹了RxJava的消息發(fā)送和線程切換實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 詳解java 中泛型中的類型擦除和橋方法

    詳解java 中泛型中的類型擦除和橋方法

    這篇文章主要介紹了詳解java 中泛型中的類型擦除和橋方法的相關資料,需要的朋友可以參考下
    2017-06-06
  • Java微信支付之服務號支付代碼示例

    Java微信支付之服務號支付代碼示例

    這篇文章主要介紹了Java微信支付之服務號支付代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Spring AOP結合注解實現(xiàn)接口層操作日志記錄

    Spring AOP結合注解實現(xiàn)接口層操作日志記錄

    在項目開發(fā)中我們需要記錄接口的操作日志:包含請求參數(shù)、響應參數(shù)、接口所屬模塊、接口功能描述、請求地址、ip地址等信息;實現(xiàn)思路很簡單就是基于注解和aop的方式去記錄日志,主要的難點在于日志表結構、注解的設計已經(jīng)aop實現(xiàn)的一些比較好的實現(xiàn)方式的借鑒
    2022-08-08
  • 微服務依賴版本管理超完整指南

    微服務依賴版本管理超完整指南

    在微服務架構中,單個服務相互協(xié)作以交付功能,這些協(xié)作會在服務之間形成依賴關系,其中一個服務依靠另一個服務來完成自己的任務,這篇文章主要介紹了微服務依賴版本管理的相關資料,需要的朋友可以參考下
    2025-12-12
  • Java的Comparable,Comparator和Cloneable三大接口詳解

    Java的Comparable,Comparator和Cloneable三大接口詳解

    這篇文章主要為大家詳細介紹了Java的Comparable,Comparator和Cloneable的接口,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • IDEA中SpringBoot項目數(shù)據(jù)庫連接加密方法

    IDEA中SpringBoot項目數(shù)據(jù)庫連接加密方法

    這篇文章主要介紹了IDEA中SpringBoot項目數(shù)據(jù)庫連接加密方法,文章通過圖文結合的方式給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-06-06

最新評論

兖州市| 巴里| 广南县| 沐川县| 永吉县| 卓资县| 泗阳县| 克东县| 板桥市| 高安市| 台中县| 玛纳斯县| 神木县| 五常市| 新丰县| 额济纳旗| 丰都县| 荔波县| 盐池县| 车险| 睢宁县| 揭西县| 府谷县| 高密市| 岑巩县| 宿松县| 石家庄市| 彭州市| 海兴县| 宁晋县| 泾源县| 奉化市| 东乌珠穆沁旗| 江安县| 武隆县| 合阳县| 读书| 乌兰浩特市| 太仓市| 甘孜县| 苍南县|