详细请参考源码(Github):https://github.com/QQ3330447288/ajaxRegister

1、目录结构

2、截图

3、核心代码:

register.jsp

<script>
  var code = "";
  var nameIsOk = false;
  var codeIsOK = false;
  //检查账号是否已经存在
  function checkUserName(input) {
    //alert(input.value);
    var name = input.value;
    $.post("<%=path%>/checkUserName.action", {
      userName : name
    }, function(data) {
      //alert(data);
      if (data == 1) {
        $('#tip').html("当前账号已经存在!");
        nameIsOk = false;
      } else {
        $('#tip').html("");
        nameIsOk = true;
      }
    });
  }
  //生成随机验证码
  function createCode(sum) {
    code = "";
    for (var i = 0; i <sum; i++) {
      var num = parseInt(Math.random() * 10) % 10;
      code += num;
    }
    return code;
  }

  //发送随机验证码给短信服务商
  function sendCode(input) {
    var phone = $("#phone").val();
    var pattern = /^1[34578]\d{9}$/;
    if(phone==""||phone==null||!pattern.test(phone)){
      alert("手机号为空或格式错误!");
      return;
    }else{
      input.setAttribute("disabled", "disabled");
      var count = 60;
      var time = setInterval(function(){
      input.value=count+"s";
      count--;
      if(count<0){
        input.removeAttribute("disabled");
        clearInterval(time);
        input.value="发送";
      }
    },1000);
    //生成6位验证码
    var code = createCode(6);
    //alert(code);
    $.post("<%=path%>/sendCode.action", {
      phone : phone,
      code : code
    }, function(data) {

    });
  }
  }
  //注册功能实现
  function register() {
    var userName = $("#userName").val();
    var pwd = $("#pwd").val();
    var pwd_sure = $("#pwd_sure").val();
    var phone = $("#phone").val();
    var codeInput = $("#codeInput").val();
    var pattern = /^1[34578]\d{9}$/;
    if($.trim(userName)==""||userName==null){
      alert("用户名不能为空!");
      return;
    }else if(pwd==""||pwd==null){
      alert("密码不能为空!");
      return;
    }else if(pwd.length<6){
      alert("密码至少6位!");
      return;
    }
    else if(pwd_sure==""){
      alert("确认密码不能为空!");
      return;
    }
    else if(pwd != pwd_sure){
      alert("两次输入密码不一致!");
      return;
    }else if(phone==""||phone==null){
      alert("手机号码不能为空!");
      return;
    }
    else if(!pattern.test(phone)){
      alert("手机号格式不正确!");
      return;
    }else if(codeInput==""||codeInput==null){
      alert("验证码不能为空!");
      return;
    }
    if(code == codeInput){
      //alert("验证码输入正确!");
      codeIsOK = true;
      //alert(codeIsOK);
    }else{
      alert("验证码输入错误!");
      codeIsOK = false;
    }
    //alert(nameIsOk);
    //alert(codeIsOK);
    if(nameIsOk==true&&codeIsOK==true){
      //alert(1);
      $.post("<%=path%>/addUser.action", {
        userName:userName,
        pwd : pwd,
        phone : phone
      },function(data){
        //alert(data);
        if(data==1){
          alert("注册成功!");
          window.location.href="<%=path%>/page/home/login.jsp";
        }else{
          alert("注册失败!");
        }
      });
    }
  }
  //键盘回车提交表单
  /*
  $(document).ready(function() {
    $(document).keydown(function(event) {
      if (event.keycode == 13) {
        register();
      }
    })
  })
  */
</script>

CheckUserAction.java:

  public class CheckUserAction extends ActionSupport {
  /**
  * 查看是否已经存在
  * @throws IOException
  */
  public void checkUserName() throws IOException {
    // ServletActionContext类来自strut2-core-2.1.6.jar
    // 获取request对象
    HttpServletRequest request = ServletActionContext.getRequest();
    String userName = request.getParameter("userName");
    // System.out.println(userName);
    // 获取response对象
    HttpServletResponse response = ServletActionContext.getResponse();
    // 设置response返回数据内容的编码
    response.setContentType("text/html,charset=utf-8");
    PrintWriter out = response.getWriter();
    // out.print(111);
    if (isExists(userName)) {
      out.print("1");
    } else {
      out.print("0");
    }
    out.flush();
    out.close();
  }

  public Boolean isExists(String userName) {
    String sql = "SELECT *FROM user WHERE username=?";
    BaseDao baseDao = new BaseDao();
    List<Object> param = new ArrayList<Object>();
    param.add(userName);
    try {
      List<User> list = baseDao.getModelsWidthSqlAndParam(sql, param, new User());
      if (list.size() > 0) {
        return true;
      } else {
        return false;
      }
    } catch (Exception e) {
      e.printStackTrace();
    }  
    return false;
  }
}

SendCodeAction.java:

  public class SendCodeAction extends ActionSupport {
    public void sendCode() {
      HttpServletRequest request = ServletActionContext.getRequest();
      String code = request.getParameter("code");
      String phone = request.getParameter("phone");
      // System.out.println(code);
      // System.out.println(phone);
      SDKDemo.sendCodeWithTel(phone, code);
    }
  }

 

AddUserAction.java:

  public class AddUserAction extends ActionSupport {
    public void addUser() throws IOException {
      HttpServletRequest request = ServletActionContext.getRequest();
      String userName = request.getParameter("userName");
      String pwd = Md5.md5(request.getParameter("pwd"), "Thanlon");
      // System.out.println(pwd);
      String phone = Md5.md5(request.getParameter("phone"), "Thanlon");
      HttpServletResponse response = ServletActionContext.getResponse();
      response.setContentType("text/html;charset=utf-8");
      PrintWriter out = response.getWriter();
      // System.out.println(userName+phone+pwd);
      if (iSaddUser(userName, pwd, phone)) {
        out.print(1);
      } else {
        out.print(0);
      }
      out.flush();
      out.close();
    }

    private Boolean iSaddUser(String userName, String pwd, String phone) {
      String sql = "INSERT user(username,pwd,phone) VALUES(?,?,?)";
      List<Object> parames = new ArrayList<Object>();
      parames.add(userName);
      parames.add(pwd);
      parames.add(phone);
      BaseDao dao = new BaseDao();
      try {
        int count = dao.executeUpdate(sql, parames);
        return count > 0;
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
      return false;
    }
  }

文章难免会有纰漏之处,还望热心业内人士能给出修改的意见或者建议。
版权声明:本文为博主原创,转载请注明出处。

Ajax+Struts2用户注册功能实现的更多相关文章

  1. Ajax+Struts2实现验证码验证功能

    ---------------------------------------------------------------------------------------------------- ...

  2. JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册

    写在最前: 下午有招聘会,不想去,总觉得没有准备好,而且都是一些不对口的公司,可是又静不下心来,就来写个博客. 最近在仿造一个书城的网站:http://www.yousuu.com ,UI直接拿来用, ...

  3. JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能

    使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...

  4. JavaWeb_(Hibernate框架)使用c3p0与Dbutils开发用户注册功能

    使用c3p0与Dbutils开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=&qu ...

  5. Django项目: 3.用户注册功能

    本章内容的补充知识点 导入库的良好顺序: 1.系统库 2.django库 3.自己定义的库(第三方库) redis缓存数据库的数据调用速度快,但是不利于长时间保存. mysql用于长时间存储,但是调用 ...

  6. Web---创建Servlet的3种方式、简单的用户注册功能

    说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...

  7. ajax实现下载功能

    ajax实现下载功能 适用场景:由于点击按钮下载excel响应时间过长,此时间段加入加载样式(灰色层.加载动画): 浏览器弹出下载框后,上面的加载样式去掉.  方     法 :使用jquery.fi ...

  8. ajax 实现修改功能

    这段时间在做项目,发现自己忘得好快呀,幸亏有博客园帮我记着呢,整理博客园简直不要太重要了哦  因为做的是一个内部管理系统,只用了一个主页面,所有的都不允许整个网页刷新,所以我们只能用ajax 来做,当 ...

  9. 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能

    Ajax文件上载 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能: 步骤 导入组件并准备静态脚本 <dependency> <groupId& ...

随机推荐

  1. nessus无法访问https://localhost:8834/#/,解决方法。

    之前没弄明白为啥经常访问不了https://localhost:8834/#/,后面才发现是服务关闭了. 首先netstat -an 查看8834是否开启, 直接运行一下nessus目录下的nessu ...

  2. SPP空间金字塔池化技术的直观理解

    空间金字塔池化技术, 厉害之处,在于使得我们构建的网络,可以输入任意大小的图片,不需要经过裁剪缩放等操作. 是后续许多金字塔技术(psp,aspp等)的起源,主要的目的都是为了获取场景语境信息,获取上 ...

  3. beego 初体验 - 基础模块 - config, httplibs, logs

    beego 的基础模块支持了一些web开发常用的功能. 配置,http操作库,日志 配置模块: 这是我的配置文件 如何读取: httplibs:这是一个利用 httplibs 发起 get 请求的示例 ...

  4. Linux基础培训知识点汇总

    一.Linux简介1.Linux操作系统诞生于1991年10月5日,由林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生.2.Linux同时也衍生了很多版本( ...

  5. configparser配置文件处理

    创建一个configparser格式的文档: import configparser config = configparser.ConfigParser()config["DEFAULT& ...

  6. request.getParameter()获取不到数据

    HTML中的form表单有一个关键属性 Content-Type=application/x-www-form-urlencoded 或multipart/form-data. 1. Content- ...

  7. 石家庄铁道大学课程信息管理系统(javaWeb+servlet+Mysql)

    实现网页版的课程管理系统,具有增删改查的功能. 1.首先连接数据库,具体数据库的使用及如何连接eclipse,参考     https://blog.csdn.net/lrici/article/de ...

  8. Dart - Isolate 并发

    在Dart中实现并发可以用Isolate,它是类似于线程(thread)但不共享内存的独立运行的worker,是一个独立的Dart程序执行环境.其实默认环境就是一个main isolate. 在Dar ...

  9. 1、Storm集群安装

    1.下载 本次选择1.2.2版本进行安装 解压安装到/opt/app目录下 2.配置环境变量 export STORM_HOME=/opt/app/apache-storm-1.2.2 export ...

  10. 5、Kafka生产过程分析

    1.写入方式 producer采用推(push)模式将消息发布到broker, 每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘效率比随机写内存要高,保障kaf ...