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

java實現(xiàn)登錄驗證碼功能

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

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

登錄驗證碼

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

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.生成代碼

新建一個控制器,提供系統(tǒng)登錄相關的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測試頁面,測試結果如圖:
這樣就大功告成了!

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

相關文章

  • 一文詳解如何在控制臺顯示MyBatis的SQL語句

    一文詳解如何在控制臺顯示MyBatis的SQL語句

    這篇文章主要為大家介紹了如何在控制臺顯示MyBatis的SQL語句實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 從SpringMVC遷移到Springboot的方法步驟

    從SpringMVC遷移到Springboot的方法步驟

    本篇文章主要介紹了從SpringMVC遷移到Springboot的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • springboot?maven?打包插件介紹及注意事項說明

    springboot?maven?打包插件介紹及注意事項說明

    這篇文章主要介紹了springboot?maven?打包插件介紹及注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 在dos窗口中編譯和運行java文件的方法

    在dos窗口中編譯和運行java文件的方法

    這篇文章主要介紹了在dos窗口中編譯和運行java文件的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • spring?@Primary-在spring中的使用方式

    spring?@Primary-在spring中的使用方式

    這篇文章主要介紹了spring?@Primary-在spring中的使用方式,具有很好的參考價值,希望對大家有所幫助。
    2022-01-01
  • 利用solr實現(xiàn)商品的搜索功能(實例講解)

    利用solr實現(xiàn)商品的搜索功能(實例講解)

    下面小編就為大家分享一篇利用solr實現(xiàn)商品的搜索功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • SpringBoot--- SpringSecurity進行注銷權限控制的配置方法

    SpringBoot--- SpringSecurity進行注銷權限控制的配置方法

    這篇文章主要介紹了SpringBoot--- SpringSecurity進行注銷,權限控制,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 解析Idea為什么不推薦使用@Autowired進行Field注入

    解析Idea為什么不推薦使用@Autowired進行Field注入

    這篇文章主要介紹了Idea不推薦使用@Autowired進行Field注入的原因,網上文章大部分都是介紹兩者的區(qū)別,沒有提到為什么,當時想了好久想出了可能的原因,今天來總結一下
    2022-05-05
  • Python爬蟲之爬取2020女團選秀數(shù)據

    Python爬蟲之爬取2020女團選秀數(shù)據

    本文將對比《青春有你2》和《創(chuàng)造營2020》全體小姐姐,鑒于兩個節(jié)目的數(shù)據采集和處理過程基本相似,在使用Python做數(shù)據爬蟲采集的章節(jié)中將只以《創(chuàng)造營2020》為例做詳細介紹。感興趣的同學可以照貓畫虎去實操一下《青春有你2》的數(shù)據爬蟲采集,需要的朋友可以參考下
    2021-04-04
  • mybatis in查詢傳入String方式

    mybatis in查詢傳入String方式

    這篇文章主要介紹了mybatis in查詢傳入String方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論

姜堰市| 温泉县| 江口县| 安庆市| 常州市| 康定县| 门源| 莱阳市| 子洲县| 阿克| 陵川县| 余江县| 金昌市| 巴楚县| 娱乐| 河曲县| 雅江县| 凤翔县| 游戏| 丁青县| 孟连| 成安县| 南开区| 连山| 永靖县| 政和县| 高邮市| 武乡县| 花莲县| 云龙县| 宁蒗| 丘北县| 洪江市| 临安市| 十堰市| 山东省| 乌拉特前旗| 连云港市| 绥江县| 龙江县| 永昌县|