一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java實現登錄驗證碼功能

java實現登錄驗證碼功能

2022-02-24 01:00玖月夢沉 Java教程

這篇文章主要為大家詳細介紹了java實現登錄驗證碼功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

登錄驗證碼

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

1.添加依賴

在pom文件下添加kaptcha依賴包

?
1
2
3
4
5
6
<!-- 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包,在該包下創建kaptcha配置類,配置驗證碼的一些生成屬性。

KaptchaConfig.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
 *  @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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
 *  @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:用于防止重要的信息被無意的發布。在請求消息中發送將使得請求和響應消息都不使用緩存。
         * 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測試頁面,測試結果如圖:
這樣就大功告成了!

java實現登錄驗證碼功能

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

原文鏈接:https://blog.csdn.net/m0_45025997/article/details/106682638

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 1769国产精品免费视频 | 2021海角社区最新版 | 青青草伊人久久 | 高清国产激情视频在线观看 | 18美女光胸光屁屁洗澡 | 五月天精品视频在线观看 | 亚洲欧美另类第一页 | 52zfl宅福利yxpjw | 激情视频激情小说 | 无码任你躁久久久久久久 | 免费看美女被靠到爽的视频 | 调教全程肉动画片在线观看 | 成人做视频免费 | 亚洲欧美日韩另类精品一区二区三区 | 黑人又大又硬又粗再深一点 | 全肉一女n男np高h双龙养成 | 亚洲免费闲人蜜桃 | 人人人人人看碰人人免费 | 免费一级生活片 | 青草青青在线视频观看 | 国产精品自在线拍 | jk制服白丝超短裙流白浆 | 欧美同性猛男野外gay免费 | 性xxx免费视频 | 午夜爱情动作片P | 很黄的孕妇a级黄毛片 | 国产成人在线视频播放 | 满城尽带黄金甲大胸片 | 冰雪奇缘1完整版免费观看 变形金刚第一部 | 久久伊人影院 | 9420高清视频在线观看网百度 | 国产精品免费观在线 | 成人福利在线 | 国产v在线播放 | 和日本免费不卡在线v | 91精品国产综合久 | 日韩在线天堂 | 99久久九九| 婷婷色在线 | 午夜精品在线视频 | www.国产一区二区三区 |