🧑💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战
系列文章目录
以下是专栏部分内容,更多内容请前往专栏查看!
标题 |
---|
一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码) |
一张思维导图带你学会Springboot创建全局异常、自定义异常 |
一张思维导图带你打通SpringBoot自定义拦截器的思路 |
28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈 |
一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署 |
一张流程图带你学会SpringBoot结合JWT实现登录功能 |
一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件 |
一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存 |
一张思维导图带你学会SpringBoot使用AOP实现日志管理功能 |
专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>
《Redis从头学》 - 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。
链接>>>>>>>
《图解RabbitMQ》
🌟引入依赖
首先引入Kaptcha的starter依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>kaptcha-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
🌟验证码配置类
/**
* 图形验证码配置类
*/
@Configuration
@Slf4j
public class CaptchaConfig {
/**
* 验证码配置
* @return
*/
@Bean
@Qualifier("captchaProducer")
public DefaultKaptcha kaptcha() {
DefaultKaptcha kaptcha = new DefaultKaptcha();
Properties properties = new Properties();
//验证码个数
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
//字体间隔
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE,"8");
//干扰实现类
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.生成验证码字符串
- 2.生成图形形式验证码
- 3.输出到客户端
- 4.关闭流
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
@Autowired
private Producer producer;
/**
* 生成图形验证码
* 1.生成验证码字符串
* 2.生成图形形式验证码
* 3.输出到客户端
* 4.关闭流
* @param request
* @param response
*/
@GetMapping("captcha")
public void getCaptcha(HttpServletRequest request, HttpServletResponse response){
//生成字符串验证码
String code= producer.createText();
//创建图形验证码
BufferedImage image=producer.createImage(code);
try {
//写到浏览器,向客户端发送数据
ServletOutputStream outputStream=null;
//获取输出流
outputStream=response.getOutputStream();
ImageIO.write(image,"jpg",outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
🌟ServletOutputStream
作用:用户向客户端发送二进制数据。提供了字节数据写入响应输出流的方式,用于生成和发送动态内容或者文件的响应。
应用场景:
- 向客户端发送图像、音频或者视频媒体文件。
- 生成发送PDF、EXCEL等等二进制文件。
- 将二进制数据流式传递给客户端。
使用步骤:
- 通过HttpservletRespon获取输出流getOutputStream。
- 通过ImageIO.write将图像写入到输出流中。
- 缓冲输出流。
- 关闭输出流。
🌟效果
🌟写在最后
有关于SpringBoot整合Kaptcha实现验证码到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。文章来源:https://www.toymoban.com/news/detail-719145.html
文章来源地址https://www.toymoban.com/news/detail-719145.html
到了这里,关于SpringBoot整合Kaptcha实现图形验证码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!