?????作者名稱:DaenCode
??作者簡介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。
??人生感悟:嘗盡人生百味,方知世間冷暖。
??所屬專欄:SpringBoot實(shí)戰(zhàn)
系列文章目錄
以下是專欄部分內(nèi)容,更多內(nèi)容請(qǐng)前往專欄查看!
標(biāo)題 |
---|
一文帶你學(xué)會(huì)使用SpringBoot+Avue實(shí)現(xiàn)短信通知功能(含重要文件代碼) |
一張思維導(dǎo)圖帶你學(xué)會(huì)Springboot創(chuàng)建全局異常、自定義異常 |
一張思維導(dǎo)圖帶你打通SpringBoot自定義攔截器的思路 |
28個(gè)SpringBoot項(xiàng)目中常用注解,日常開發(fā)、求職面試不再懵圈 |
一張思維導(dǎo)圖帶你學(xué)會(huì)SpringBoot、Vue前后端分離項(xiàng)目線上部署 |
一張流程圖帶你學(xué)會(huì)SpringBoot結(jié)合JWT實(shí)現(xiàn)登錄功能 |
一張思維導(dǎo)圖帶你學(xué)會(huì)使用SpringBoot中的Schedule定時(shí)發(fā)送郵件 |
一張思維導(dǎo)圖帶你學(xué)會(huì)使用SpringBoot異步任務(wù)實(shí)現(xiàn)下單校驗(yàn)庫存 |
一張思維導(dǎo)圖帶你學(xué)會(huì)SpringBoot使用AOP實(shí)現(xiàn)日志管理功能 |
專欄推薦
- 專門為Redis入門打造的專欄,包含Redis基礎(chǔ)知識(shí)、基礎(chǔ)命令、五大數(shù)據(jù)類型實(shí)戰(zhàn)場景、key刪除策略、內(nèi)存淘汰機(jī)制、持久化機(jī)制、哨兵模式、主從復(fù)制、分布式鎖等等內(nèi)容。
鏈接>>>>>>>>>
《Redis從頭學(xué)》 - 專門為RabbitMQ入門打造的專欄,持續(xù)更新中。。。。。。。。
鏈接>>>>>>>
《圖解RabbitMQ》
??引入依賴
首先引入Kaptcha的starter依賴
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>kaptcha-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
??驗(yàn)證碼配置類
/**
* 圖形驗(yàn)證碼配置類
*/
@Configuration
@Slf4j
public class CaptchaConfig {
/**
* 驗(yàn)證碼配置
* @return
*/
@Bean
@Qualifier("captchaProducer")
public DefaultKaptcha kaptcha() {
DefaultKaptcha kaptcha = new DefaultKaptcha();
Properties properties = new Properties();
//驗(yàn)證碼個(gè)數(shù)
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
//字體間隔
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE,"8");
//干擾實(shí)現(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.生成驗(yàn)證碼字符串
- 2.生成圖形形式驗(yàn)證碼
- 3.輸出到客戶端
- 4.關(guān)閉流
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
@Autowired
private Producer producer;
/**
* 生成圖形驗(yàn)證碼
* 1.生成驗(yàn)證碼字符串
* 2.生成圖形形式驗(yàn)證碼
* 3.輸出到客戶端
* 4.關(guān)閉流
* @param request
* @param response
*/
@GetMapping("captcha")
public void getCaptcha(HttpServletRequest request, HttpServletResponse response){
//生成字符串驗(yàn)證碼
String code= producer.createText();
//創(chuàng)建圖形驗(yàn)證碼
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ā)送二進(jìn)制數(shù)據(jù)。提供了字節(jié)數(shù)據(jù)寫入響應(yīng)輸出流的方式,用于生成和發(fā)送動(dòng)態(tài)內(nèi)容或者文件的響應(yīng)。
應(yīng)用場景:
- 向客戶端發(fā)送圖像、音頻或者視頻媒體文件。
- 生成發(fā)送PDF、EXCEL等等二進(jìn)制文件。
- 將二進(jìn)制數(shù)據(jù)流式傳遞給客戶端。
使用步驟:
- 通過HttpservletRespon獲取輸出流getOutputStream。
- 通過ImageIO.write將圖像寫入到輸出流中。
- 緩沖輸出流。
- 關(guān)閉輸出流。
??效果
??寫在最后
有關(guān)于SpringBoot整合Kaptcha實(shí)現(xiàn)驗(yàn)證碼到此就結(jié)束了。感謝大家的閱讀,希望大家在評(píng)論區(qū)對(duì)此部分內(nèi)容散發(fā)討論,便于學(xué)到更多的知識(shí)。文章來源:http://www.zghlxwxcb.cn/news/detail-719145.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-719145.html
到了這里,關(guān)于SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!