基于SSM项目(java实现配置spring)的验证码实现,生成验证码需要引入一个jar包,引入maven坐标:
<!-- 生成二维码图片的jar包 -->
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>
前端页面代码:
<%--验证码--%>
<img src="${APP_PATH}/captcha.jpg" onclick="this.src='${APP_PATH}/captcha.jpg'" >
验证码的配置文件:
@Configuration
public class KaptchaConfig {
@Bean
public DefaultKaptcha producer() {
Properties properties = new Properties();
// 图片边框,合法值:yes , no
properties.put("kaptcha.border", "no");
// 字体颜色,合法值: r,g,b 或者 white,black,blue.
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;
}
}
controller层代码:
@GetMapping("/captcha.jpg")
public void captcha(HttpServletResponse response, String uuid)throws ServletException, IOException {
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
//获取图片验证码
//生成文字验证码
String code = producer.createText();
System.out.println("验证码:"+code);
BufferedImage image = producer.createImage(code);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
IOUtils.closeQuietly(out);
}
到此验证码就实现了,如果ssm项目是通过xml方式配置文件的,那么spring的配置文件还得加上验证码的bean,即:
<!-- 如果spring是xml的配置文件,则需要加验证码的bean,如果spring是java配置的文件,则不需要加bean-->
<bean class="com.crud.aspect.KaptchaConfig" />