验证码程序

本文详细介绍了一种基于HTML、JavaScript和Servlet的前后端验证码实现方法。前端展示验证码输入框和图片,通过点击图片实现验证码刷新;后端通过Servlet生成验证码并存储于session中,用于登录时的验证比对。
摘要由CSDN通过智能技术生成

前台写一个验证码输入框,显示一个验证码图片

<input type="text" name="checkCode" placeholder="验证码"  style="width: 130px"/>
<div class="login-center-input-text">验证码</div>
<img id="checkCode" alt="验证码" src="checkCode" style="width: 70px;margin-left: 20px">

给验证码添加一个点击切换功能

<script type="text/javascript">
       //点击验证码进行切换
        $("#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 {
        //拿到验证码工具类对象(验证码图片宽120 高40 四位 6个干扰圈
        CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(120, 40, 4, 6);
        //取验证码的值 四个
        String code = circleCaptcha.getCode();
        //把验证存入session
        req.getSession().setAttribute("code",code);
        //把图片写出去
        circleCaptcha.write(resp.getOutputStream());
    }
}

后台判断时

String checkCode = req.getParameter("checkCode");
String code= (String) req.getSession().getAttribute("code");
if (!checkCode.equalsIgnoreCase(code)){
//这里调用的是两个自己写的方法,就是往前台书写JSON数据
    JsonData jsonData = JsonData.buildError("验证码错误!");
    PrintJsonData.read(resp,jsonData);
}

验证码输入错误或者账号密码错误刷新验证码
在前台验证登录是否成功的if判断else内调用点击切换方法即可

$.post('user',d.field,function (rs) {    //jquery的异步提交
    if(rs.code==200){   //如果响应成功,则进入主页面
        location.href='page?page=main'; // PageServlet 专门管理页面跳转的
        return false;//终止执行
    }else{
        $("#checkCode").click();
    }
    console.log(rs.msg);
    //弹出层的提示信息
    layer.msg(rs.msg);
},"json");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值