java新手:注册时验证用户名是否在数据库里已存在

java新手:最近在实现ssh实现注册时验证用户名是否已经存在
在register.jsp里

<input type="text" class="form-control" name="username" id="username" placeholder="用户名" required="required" onblur="checkName()"/>
<span id="name_tishi"></span>

required="required"表示输入框不可以为空,
onblur事件会在对象失去焦点时发生。
js:

function checkName(){
      $("#error").css("display","none");
      var username = $.trim($("#username").val());
     // console.log("username=="+username);
      $.ajax({
        type:'POST',
        url:"Login_findUserByName.action",
        data:"username="+username,
        dataType:"text",
        success: function(data) {     
                //console.log("data=="+data);         
                if(data == "true"){ 
                    $("#name_tishi").html("");
                    //   $("#e_tishi").css("color","green");
                    $("#submit_btn").removeAttr("disabled");//注册的id
                    return true;           
               }else{ 
              //  console.log("data注册过"+data);              
                $("#name_tishi").html("用户名已经存在");
                $("#name_tishi").css("color","red");
                $("#submit_btn").attr("disabled","disabled");
                 document.getElementById("username").value="";       //让用户名输入框为空
                $("#username").focus();//把焦点给用户名输入框
                return false;
              }
             }       
      });
    }

在action中的函数:

public void findUserByName(){
		boolean firstName = adminBizImpl.findUserByName(username);
		//取得response 实例
		HttpServletResponse response = ServletActionContext.getResponse();
       //可以注册
		if(firstName==false){
		    try {
		     //response.getWriter()得到PrintWriter实例,write 输出firstName的值
	                response.getWriter().write(firstName+"");
	        } catch (IOException e) {
	                e.printStackTrace();
	        }
			System.out.println("firstName=="+false);	
		}else {//不能注册
            try {
                response.getWriter().write(firstName+"");
            } catch (IOException e) {
                e.printStackTrace();
            }
		System.out.println("firstName=="+true);
		}
	}

在biz中:

public boolean findUserByName(String username) {
		return adminDao.findUserByName(username);
	}

在dao中:

public boolean findUserByName(String username) {
		Session session = sessionFactory.getCurrentSession();
		Transaction tx = session.beginTransaction();
		List<Admin> list =null;
		try{
			String sql = "select * from admin where name='"+username+"';";
			list = session.createSQLQuery(sql).list();
			System.out.println("findUserByName =="+list);
			tx.commit();
			if(list!=null && list.size()>0){
				return false;
			}
		}catch(Exception e){
			tx.rollback();
			e.printStackTrace();
		}
		return true;
	}

在struts.xml中:

<action name="Login_*" class="userAction" method="{1}">
<!-- 没有返回值-->
</action>

在用户注册时写的,可以根据验证用户名的代码,可以实现验证电话和邮箱的。

猜你喜欢

转载自blog.csdn.net/w_e_i_1201/article/details/82871835