1.引入hutool依赖
<dependency>
<groupId>com.xiaoleilu</groupId>
<artifactId>hutool-all</artifactId>
<version>3.2.3</version>
</dependency>
2.编写controller层代码
@RestController
public class CaptchaController {
//新建一个Springboot项目,勾选web就OK了,项目会自动集成logback,然后就能进行日志相关的操作了
private final Logger logger = LoggerFactory.getLogger(getClass());
// private final org.slf4j.Logger logger= LoggerFactory.getLogger(this.getClass());这种方式也行
@GetMapping("/getCaptcha")
public void getCaptcha(HttpServletResponse response, HttpSession session) {
//生成验证码图片
CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(200, 100, 4, 25);
//告诉浏览器输出内容为jpeg类型的图片
response.setContentType("image/jpeg");
//禁止浏览器缓存
response.setHeader("Pragma", "No-cache");
// response.setHeader(“Cache-Control”, “no-cache”);
// response.setDateHeader(“Expire”, 0);
try {
ServletOutputStream outputStream = response.getOutputStream();
//图形验证码写出,可以写出到流,也可以写出到文件如circleCaptcha.write(“d:/circle25.jpeg”);
circleCaptcha.write(outputStream);
//从带有圆圈类型的图形验证码图片中获取它的字符串验证码(获取字符串验证码要在图形验证码写出wirte后面才行,不然得到的值为null)
String code = circleCaptcha.getCode();
//将字符串验证码保存到session中
session.setAttribute(“code”, code);
logger.info(“生成的验证码:{}”, code);
logger.info(“sessionId:{}”, session.getId());
//关闭流
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.访问生成验证码接口得到图形验证码图片
在浏览器或者postman输入http://localhost:8080/getCaptcha访问
得到