WEB开发网
开发学院软件开发Java 在SpringSide 3 中使用JCaptcha 阅读

在SpringSide 3 中使用JCaptcha

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: 3、在所有需要显示验证图片的JSP文件中使用如下代码:<imgid="captchaImage"src="http://tech.ddvip.com/2009-09/${ctx}/security/jcaptcha.jpg"width="1

3、在所有需要显示验证图片的JSP文件中使用如下代码:

<img id="captchaImage" src="http://tech.ddvip.com/2009-09/${ctx}/security/jcaptcha.jpg" width="100" height="40" align="middle" >(如看不清,可点击图片更换)

这里的onclick函数主要是为了实现点击图片更换的效果,其代码如下:

function onImageClick(o){
    o.src = "/PureText/security/jcapthcha.jpg?update=" + Math.random();
}

这时候,符合SpringSecurity要求的登录界面就会自动验证用户的输入了。

但是,我们并不是只有登录这一个地方需要使用验证图片,在用户注册、发表文章等这些地方都需要用到,而且为了不让用户离开输入界面,一般使用AJAX,这时候怎么办呢?不使用Filter,我们依然可以手动验证,如下代码片断,则是在Action类中截取的:

// 验证cpatchaImage
        boolean flag = false;
        try {
            HttpServletRequest request = Struts2Utils.getRequest();
            String captchaID = request.getSession().getId();
            String captchaValue = request.getParameter("captchaValue");
            ApplicationContext context = WebApplicationContextUtils
                    .getWebApplicationContext(Struts2Utils.getSession()
                            .getServletContext());
            CaptchaService captchaService = (CaptchaService) context
                    .getBean("captchaService");
            flag = captchaService
                    .validateResponseForID(captchaID, captchaValue);
        } catch (Exception e) {
            flag = false;
        }
        if (!flag) {
            success = false;
            result += "captcha_err.innerHTML='验证码输入错误。';";
        } else {
            result += "captcha_err.innerHTML='';";
        }
        if (success == false) {
            result += "failed();";
            Struts2Utils.renderHtml(result, "encoding:UTF-8");

就这么简单。祝大家愉快!

上一页  1 2 3 

Tags:SpringSide 使用 JCaptcha

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接