生成"登錄驗證碼"的方法步驟

1.添加simplecaptcha架包簡單夠用的驗證碼生產庫.

2.新增CaptchaModule模塊類

@IocBean
@At("/captcha")
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多的組合和配置,自行選擇啦

3.在頁面中加入驗證碼文本框

<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>



微笑微笑大笑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章