验证码输入错误怎么再次刷新验证码

利用jQuery的prop()函数获取src属性的值,向Servlet发出请求的时候加一个随机数,保证每次都是不同的请求
<script type="text/javascript">

    //登录页面用到的 layui组件,有表单,弹层,jquery
    layui.use(['form','layer','jquery'],function () {
        var form = layui.form;  //获取表单对象
        var layer = layui.layer;//获取弹出层对象
        var $ = layui.jquery;//获取layui内置的jquery对象
        //提交登陆表单
        form.on('submit(loginBtnFilter)',function (d) {
            // d.field 等于 {key:value,key:value...}
            $.post('UserServlet',d.field,function (rs) {    //jquery的异步提交
                if(rs.code==200){   //如果响应成功,则进入主页面
                    location.href='page?page=main'; // PageServlet 专门管理页面跳转的
                    return false;//终止执行
                }
                console.log(rs.msg);
                //弹出层的提示信息 这里弹出的是失败提示信息
                layer.msg(rs.msg);
                //当然这里也可以根据时间来刷新验证码 用于防止上一次的验证码缓存
                $("#checkCode").prop("src","checkCode" + "?" + Math.random());
            },"json");
            return false;   //组织表单名默认提交
        });

        //点击验证码进行切换
        $("#checkCode").click(function(){
            // 给 img对象的 src属性 ,重新赋值checkCode.do , 时间防止缓存
            $(this).attr("src","checkCode?"+new Date());
        });
    });
</script>

实现验证码Servlet:

@WebServlet("/checkCode")
public class checkCodeServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //拿到验证码工具类对象
        LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(80, 40, 4, 10);
        String code = lineCaptcha.getCode();//取出的4个字符
        //将code验证码存入session
        req.getSession().setAttribute("code",code);
        //todo 将验证码 图片 输出到页面,并赋值给img 的src
        lineCaptcha.write(resp.getOutputStream());

    }
}
  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值