Kaptcha生成验证码
原来搞验证码的时候,都是用java画笔去搞,感觉好麻烦的有木有,今天带大家来看看kaptcha这个小工具吧,他可方便多啦!!!
- 第一步哈,先导包,没有包啥也干不了
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
- 有了包之后呢,我们还需要对kaptcha进行配置一下
- 然后用@Bean注解将他放入到spring容器里面,方便我们后面的使用
@Configuration
public class KaptchaConfig {
@Bean
public Producer kaptchaProducer(){
Properties properties = new Properties();
properties.setProperty("kaptcha.image.width","100");
properties.setProperty("kaptcha.image.height","50");
properties.setProperty("kaptcha.textproducer.font.size","32");
properties.setProperty("kaptcha.textproducer.font.color","0,0,0");
properties.setProperty("kaptcha.textproducer.char.string","123456789QWERTYUIOPASDFGHJKLZXCVBNM");
properties.setProperty("kaptcha.textproducer.char.length","4");
properties.setProperty("kaptcha.noise.impl","com.google.code.kaptcha.impl.NoNoise");
DefaultKaptcha kaptcha = new DefaultKaptcha();
Config config = new Config(properties);
kaptcha.setConfig(config);
return kaptcha;
}
}
- 记得标注他是一个配置类哦。
配置啥的搞完后,我们就可以来使用了。
- 首先我们在controller里面现将它注入进去
@Autowired
private Producer kaptchaProducer;
然后就可以使用它,生成一个验证码并返回给浏览器拉
- 注意哈,验证码要存在session里面哦,放cookie里面是可以被发现的,那就不安全了
- 但是session很拖服务器的,集成到项目里面后,我们可以改放到redis里面去。
到这里我们已经完成了验证码的获取的
- 直接访问lcoalhost:8080/community/kaptcha就可以得到一个验证码
- 然后现在我们要反馈到我们的html模板上去,记住 /kaptcha 的路径就好拉
在有需要的图片上,src = “/kaptcha” 即可。
- 然后还需要对图片进行刷新,这里我们设置两种刷新的方式哈,
- 一种点击图片进行刷新,一种有个刷新的文字超链接
<script>
function refresh_kaptcha(){
var path = CONTEXT_PATH + "/kaptcha?p=" + Math.random();
$("#kaptcha").attr("src",path);
}
$("#kaptcha").click(function (){
refresh_kaptcha();
});
</script>
- 但是要记得给图片添加 id属性, id = kaptcha 哈!!!
到这里就完成啦,很好用哦!!!