public class CaptchaModule {
@At
@Ok("raw:png")
public BufferedImage next(HttpSession session, @Param("w") int w,@Param("h") int h) {
if (w * h < 1) { //长或宽为0?重置为默认长宽.
w = 200;
h = 60;
}
Captcha captcha = new Captcha.Builder(w, h)
.addText().addBackground(new GradiatedBackgroundProducer())
.gimp(new FishEyeGimpyRenderer())
.build();
String text = captcha.getAnswer();
session.setAttribute(Toolkit.captcha_attr, text); return captcha.getImage();
}
}raw代表RawView
png是RawView中对image/png的缩写,是数据mime的描述
返回值是BufferedImage,且这是image/png, 所以会转为图片显示. 还支持jpg/webp等格式,详情参考RawView的源码吧.
Captcha有N多的组合和配置,自行选择啦
<script type="text/javascript">
function next_captcha() {
$("#captcha_img").attr("src", "${base}/captcha/next?_=" + new Date().getTime());
}
</script>
验证码<input name="captcha" type="text" value="">
<img id="captcha_img" onclick="next_captcha();return false;" src="${base}/captcha/next"></img>本文出自 “12403903” 博客,转载请与作者联系!
原文地址:http://12413903.blog.51cto.com/12403903/1884266