大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java登錄驗(yàn)證碼實(shí)現(xiàn)的方法

Java登錄驗(yàn)證碼實(shí)現(xiàn)的方法

更新時(shí)間:2022-10-14 10:41:21 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1867次

登錄驗(yàn)證是大多數(shù)登錄系統(tǒng)都會(huì)用到的一個(gè)功能,它的驗(yàn)證方式也是有很多種,例如登錄驗(yàn)證碼,登錄驗(yàn)證條及拼圖拖動(dòng)塊等,這里講講輸入登錄驗(yàn)證碼的方式來實(shí)現(xiàn)的例子。首先,kaptcha這是一個(gè)開源的驗(yàn)證碼實(shí)現(xiàn)庫,利用這個(gè)庫可以非常方便的實(shí)現(xiàn)驗(yà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配置類,配置驗(yàn)證碼的一些生成屬性。

KaptchaConfig.java

/**
 *  @author: yzy
 *  @Date: 2020/6/11 10:41
 *  @Description: 驗(yàn)證碼的配置
 */
@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.生成代碼

新建一個(gè)控制器,提供系統(tǒng)登錄相關(guān)的API,在其中添加驗(yàn)證碼生成接口。

LoginController.java

/**
 *  @author: yzy
 *  @Date: 2020/6/11 10:58
 *  @Description: 登錄控制器
 */
@RestController
public class LoginController {
    @Resource
    private Producer producer; 
    /**
     * @Description:  驗(yàn)證碼生成接口
     * @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指定請(qǐng)求和響應(yīng)遵循的緩存機(jī)制
         * no-store:用于防止重要的信息被無意的發(fā)布。在請(qǐng)求消息中發(fā)送將使得請(qǐng)求和響應(yīng)消息都不使用緩存。
         * no-cache:指示請(qǐng)求或響應(yīng)消息不能緩存
         */
        response.setHeader("Cache-Control","no-store,no-cache"); 
        // 設(shè)置輸出流內(nèi)容格式為圖片格式.image/jpeg,圖片格式用于生成圖片隨機(jī)碼
        response.setContentType("image/jpeg"); 
        // 生成文字驗(yàn)證碼
        String text = producer.createText(); 
        // 生成圖片驗(yàn)證碼
        BufferedImage image = producer.createImage(text); 
        // 保存驗(yàn)證碼到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);
    }
}

測(cè)試接口

編譯成功后,訪問http://localhost:8010/swagger-ui.html,進(jìn)入swagger測(cè)試頁面,測(cè)試結(jié)果如圖:

這樣就大功告成了!

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美一级二级aaa免费视频 | 久久精品全国免费观看国产 | 真实偷拍激情啪啪对白 | 亚洲高清在线观看视频 | 亚洲另类伦春色综合妖色成人网 | 国产一区二区三区免费看 | 香蕉tv亚洲专区在线观看 | 欧美一级成人一区二区三区 | 男女超爽视频免费播放在线观看 | 欧美猛操| 91久久精品都在这里 | 久久精品国产亚洲精品2020 | 奇米第四色在线观看 | 婷婷在线五月 | 日韩视频在线观看一区二区 | 青青青免费手机版视频在线观看 | www.色在线观看 | 97色在线视频 | 另类欧美chinese | 四虎影视884aa·com | 欧美日韩综合在线视频免费看 | 国产成人aa视频在线观看 | 中文字幕日韩精品亚洲七区 | 免费的毛片视频 | 亚洲综合视频在线观看 | 欧美国产亚洲精品a第一页 欧美国产亚洲精品高清不卡 | 色婷婷激婷婷深爱五月小蛇 | 天天射天天射天天干 | 精品福利在线观看 | 中文视频 | 天天爱天天做久久天天狠狼 | 久久狠狠第一麻豆婷婷天天 | 老司机精品99在线播放 | 波多野结衣中文字幕一区 | 99热这里只有精品国产在热久久 | 2345成人高清毛片 | 非洲一级毛片 | 精品麻豆国产 | 成人午夜私人影院入口 | 亚洲精品高清在线 | 四虎在线视频观看大全影视 |