欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現登錄驗證碼功能

 更新時間:2021年10月21日 11:35:34   作者:玖月夢沉  
這篇文章主要為大家詳細介紹了java實現登錄驗證碼功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現登錄驗證碼功能的具體代碼,供大家參考,具體內容如下

登錄驗證碼

登錄驗證是大多數登錄系統都會用到的一個功能,它的驗證方式也是有很多種,例如登錄驗證碼,登錄驗證條及拼圖拖動塊等,這里講講輸入登錄驗證碼的方式來實現的例子。首先,kaptcha這是一個開源的驗證碼實現庫,利用這個庫可以非常方便的實現驗證碼功能。

1.添加依賴

在pom文件下添加kaptcha依賴包

<!-- https://mvnrepository.com/artifact/com.github.axet/kaptcha -->
    <dependency>
      <groupId>com.github.axet</groupId>
      <artifactId>kaptcha</artifactId>
      <version>0.0.9</version>
</dependency>

2.添加配置

新建config包,在該包下創(chuàng)建kaptcha配置類,配置驗證碼的一些生成屬性。

KaptchaConfig.java

/**
 *  @author: yzy
 *  @Date: 2020/6/11 10:41
 *  @Description: 驗證碼的配置
 */
@Configuration
public class CaptchaConfig {

    @Bean
    public DefaultKaptcha producer() {
        Properties properties = new Properties();
        properties.put("kaptcha.border","no");
        properties.put("kaptcha.textproducer.font.color","black");
        properties.put("kaptcha.textproducer.char.space","5");
        Config config = new Config(properties);
        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
        defaultKaptcha.setConfig(config);
        return defaultKaptcha;
    }

}

3.生成代碼

新建一個控制器,提供系統登錄相關的API,在其中添加驗證碼生成接口。

LoginController.java

/**
 *  @author: yzy
 *  @Date: 2020/6/11 10:58
 *  @Description: 登錄控制器
 */
@RestController
public class LoginController {
    @Resource
    private Producer producer;

    /**
     * @Description:  驗證碼生成接口
     * @Author:       yzy
     * @Date:         2020/6/11 11:00
     * @Param:        response
     * @Param:        request
     * @Return:       void
     * @Exception
     *
     */
    @RequestMapping(value = "/captcha.jpg",method = RequestMethod.GET)
    public void captcha(HttpServletResponse response, HttpServletRequest request) {
        /**
         * Cache-Control指定請求和響應遵循的緩存機制
         * no-store:用于防止重要的信息被無意的發(fā)布。在請求消息中發(fā)送將使得請求和響應消息都不使用緩存。
         * no-cache:指示請求或響應消息不能緩存
         */
        response.setHeader("Cache-Control","no-store,no-cache");

        // 設置輸出流內容格式為圖片格式.image/jpeg,圖片格式用于生成圖片隨機碼
        response.setContentType("image/jpeg");

        // 生成文字驗證碼
        String text = producer.createText();

        // 生成圖片驗證碼
        BufferedImage image = producer.createImage(text);

        // 保存驗證碼到session中
        request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY,text);
        ServletOutputStream outputStream = null;
        try {
            outputStream = response.getOutputStream();
            ImageIO.write(image,"jpg",outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        IOUtils.closeQuietly(outputStream);
    }
}

測試接口

編譯成功后,訪問http://localhost:8010/swagger-ui.html,進入swagger測試頁面,測試結果如圖:
這樣就大功告成了!

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

相關文章

  • 不看后悔!揭秘游戲服務器開發(fā)

    不看后悔!揭秘游戲服務器開發(fā)

    剛開始時以為做游戲服務器和做web差不多,但是經過一段時間之后,才發(fā)現代碼太多,太亂了,這里我把一些游戲開發(fā)方面的東西整理一下,希望能對那些想做游戲服務器開發(fā)的朋友有所幫助
    2021-06-06
  • Java高級面試題小結

    Java高級面試題小結

    本文主要介紹了一些在Java面試過程中的一些高級面試題,包括對部分名詞的釋義及代碼解析,具有一定收藏價值,需要的朋友可以參考下
    2017-09-09
  • Springboot集成SSE實現單工通信消息推送流程詳解

    Springboot集成SSE實現單工通信消息推送流程詳解

    SSE簡單的來說就是服務器主動向前端推送數據的一種技術,它是單向的,也就是說前端是不能向服務器發(fā)送數據的。SSE適用于消息推送,監(jiān)控等只需要服務器推送數據的場景中,下面是使用Spring Boot來實現一個簡單的模擬向前端推動進度數據,前端頁面接受后展示進度條
    2022-11-11
  • springboot如何通過不同的策略動態(tài)調用不同的實現類

    springboot如何通過不同的策略動態(tài)調用不同的實現類

    這篇文章主要介紹了springboot如何通過不同的策略動態(tài)調用不同的實現類,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 基于Java8并行流(parallelStream)的注意點

    基于Java8并行流(parallelStream)的注意點

    這篇文章主要介紹了Java8并行流(parallelStream)的注意點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Boot 3 整合 Spring Cloud Gateway實踐過程

    Spring Boot 3 整合 Spring Cloud 

    本文介紹了如何使用SpringCloudAlibaba2023.0.0.0版本構建一個微服務網關,包括統一路由、限流防刷和登錄鑒權等功能,并通過一個項目實例進行詳細說明,感興趣的朋友一起看看吧
    2025-02-02
  • java使用UDP實現點對點通信

    java使用UDP實現點對點通信

    這篇文章主要為大家詳細介紹了java使用UDP實現點對點通信,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 解決fastjson泛型轉換報錯的解決方法

    解決fastjson泛型轉換報錯的解決方法

    這篇文章主要介紹了解決fastjson泛型轉換報錯的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • FastJson實現駝峰下劃線相互轉換方法詳解

    FastJson實現駝峰下劃線相互轉換方法詳解

    這篇文章主要介紹了使用FastJson進行駝峰下劃線相互轉換寫法及誤區(qū),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Java設計模式之狀態(tài)模式State Pattern詳解

    Java設計模式之狀態(tài)模式State Pattern詳解

    這篇文章主要介紹了Java設計模式之狀態(tài)模式State Pattern,狀態(tài)模式允許一個對象在其內部狀態(tài)改變的時候改變其行為。這個對象看上去就像是改變了它的類一樣
    2022-11-11

最新評論