验证码前台数据处理
RegistUserServlet类:
@WebServlet("/registUserServlet") public class RegistUserServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 验证校验 String check = request.getParameter("check"); // 从session中获取验证码 HttpSession session = request.getSession(); String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER"); // 为了保证验证码只能使用一次 session.removeAttribute("CHECKCODE_SERVER"); // 比较 if (checkcode_server==null || !checkcode_server.equalsIgnoreCase(check)){ // 验证码错误 ResultInfo info = new ResultInfo(); info.setFlag(false); info.setErrorMsg("验证码错误"); // 将info对象序列化为json ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(info); response.setContentType("application/json;charset=utf-8"); response.getWriter().write(json); return; } // 1、获取数据 Map<String, String[]> map = request.getParameterMap(); // 2、封装对象 User user = new User(); try { BeanUtils.populate(user,map); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } // 3、调用service完成注册 UserService service = new UserServiceImpl(); boolean flag = service.regist(user); // 4、响应结果 ResultInfo info = new ResultInfo(); if (flag){ // 注册成功 info.setFlag(true); }else { // 注册失败 info.setFlag(false); info.setErrorMsg("注册失败"); } // 将info对象序列化为json ObjectMapper mapper = new ObjectMapper(); String string = mapper.writeValueAsString(info); // 将json数据写回客户端 // 设置content-type response.setContentType("application/json;charset=utf-8"); response.getWriter().write(string); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
register.html页面:
<script> /* 表单校验: 1、用户名:单词字符,长度8到20位 2、密码:单词字符,长度8到20位 3、email:邮件格式 4、姓名:非空 5、手机号:手机号格式 6、出生日期:非空 7、验证码:非空 */ //校验用户名 function checkUsername() { // 1、获取用户名 var usernmae = $("#username").val(); //2、定义正则 var reg_username = /^\w{8,20}$/; // 判断给出提示信息 var flag = reg_username.test(usernmae); if (flag){ // 用户名合法 $("#username").css("border",""); } else { // 用户名非法 $("#username").css("border","1px solid red"); } return flag; } // 校验密码 function checkPassword(){ // 1、获取用户名 var password = $("#password").val(); // 2、定义正则 var reg_password = /^\w{8,20}$/; // 判断给出提示信息 var flag = reg_password.test(password); if (flag){ // 用户名合法 $("#password").css("border",""); } else { // 用户名非法 $("#password").css("border","1px solid red"); } return flag; } // 校验邮箱 function checkEmail(){ // 1、获取邮箱 var email = $("#email").val(); // 定义规则 var reg_email = /^\w+@\w+\.\w+$/; // 判断 var flag = reg_email.test(email); if (flag){ $("#email").css("border",""); }else { $("#email").css("border","1px solid red"); } return flag; } $(function () { $("#registerForm").submit(function () { // 发送数据到服务器 if (checkUsername() && checkPassword() && checkEmail()){ // 校验通过发送ajax请求,提交表单的数据 $.post("registUserServlet",$(this).serialize(),function (data) { // 处理服务器响应的数据 if(data.flag){ // 注册成功,跳转成功页面 location.href = "register_ok.html"; }else { $("#errorMsg").html(data.errorMsg); } }); } return false; }); $("#username").blur(checkUsername); $("#password").blur(checkPassword); $("#email").blur(checkEmail); }) </script>