jQuery+Ajax+Servlet进行验证码校验

您所在的位置:网站首页 前端实现验证码功能 jQuery+Ajax+Servlet进行验证码校验

jQuery+Ajax+Servlet进行验证码校验

#jQuery+Ajax+Servlet进行验证码校验| 来源: 网络整理| 查看: 265

本篇文章主要说的是验证码的校验,使用到的有前台jsp页面+jQuery+Ajax+Servlet。

代码中都有较详细的注释,这里要交代的有两点:

1、将Ajax改为同步执行:     Ajax代码中如果没有async:false,这一句,验证功能也能实现,之所以加上这一句是登录时的功能需要。当点击“登录”按钮时,需判断用户名、密码、验证码是否全部正确,而Ajax是异步执行的,点击登录时不能够获取到Ajax的返回值,所以调用checkCode()方法不能正确判断验证码填写是否正确。所以将Ajax改为同步执行,可获取到返回值。 2、验证码:

    验证码的标签为标签,但是src的值为"code",其对应的是一个Servlet,该Servlet的作用就是生成一个验证码图片。有兴趣的可在另外一篇博客上看到。

    效果图:

jsp页面代码:

验证码:     点击刷新 * jQuery+Ajax代码:

/** * 检查验证码 */ function checkCode() { var check = false; $.ajax( { type : "post",//请求方式 url : "checkCode",//发送请求地址 async : false, dataType: "html", data : {//发送数据 validate : $('[name=validate]').val() }, //请求成功后的回调函数有两个参数 success : function(data,textStatus) { if(data=='0') { $("#checkCode").html("验证码错误!"); } else { $("#checkCode").html("正确!"); check = true; } } }); return check; } Servlet代码:

import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class CheckCodeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); String code=request.getParameter("validate"); PrintWriter out = response.getWriter(); if (!code.equalsIgnoreCase(request.getSession().getAttribute("code").toString())) { out.print(0); } else { out.print(1); } out.flush(); out.close(); } } web.xml配置代码:

CheckCodeServlet servlet.CheckCodeServlet CheckCodeServlet /checkCode



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3