• [AJAX] 002 AJAX异步验证


    目标:完成新注册用户的异步验证功能。在用户输入完新的id后判断id是否以存在。

    (1) 前台 首先编写一个注册页面register.htm

    表单:提交表单给checkForm()验证
    onblur="checkUserid(this.value)

    <form action="regist.jsp" method="post" onsubmit="return checkForm()">
    	用户ID:<input type="text" name="userid" onblur="checkUserid(this.value)"><span id="msg"></span><br>
    	姓  名:<input type="text" name="name"><br>
    	密  码:<input type="password" name="password"><br>
    	<input type="submit" value="注册">
    	<input type="reset" value="重置">
    </form>
    

      ajax操作和checkForm()

    	<script type="javascript">	
    
    		//① 设置变量
    		var xmlHttp ;
    		var flag = false ;
    		
    		//② 创建XMLHttp对象
    		function createXMLHttp(){
    			if(window.XMLHttpRequest){
    				xmlHttp = new XMLHttpRequest() ;
    			} else {
    				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") ;
    			}
    		}
    		
    		    //③ 用户ID的验证函数  传递的参数是userid 也就是用户输入的注册id
    			function checkUserid(userid){
    			
    			//创建XMLHttpRequest对象
    			createXMLHttp() ;
    			
    			//创建一个HTTP请求,以post方式将userid交给checkservlet去验证
    			xmlHttp.open("POST","CheckServlet?userid="+userid) ;
    			
    			//调用回调函数 生成可视化的页面响应
    			xmlHttp.onreadystatechange = checkUseridCallback ;
    			
    			发送请求
    			xmlHttp.send(null) ;
    			
    			//友好提示
    			document.getElementById("msg").innerHTML = "正在验证..." ;
    		}
    		
    		//④ 回调函数
    		function checkUseridCallback(){
    			if(xmlHttp.readyState == 4){
    				if(xmlHttp.status == 200){
    					var text = xmlHttp.responseText ;
    					if(text == "true"){	// 用户id已经存在了
    						document.getElementById("msg").innerHTML = "用户ID重复,无法使用!" ;
    						flag = false ;
    					} else {
    						document.getElementById("msg").innerHTML = "此用户ID可以注册!" ;
    						flag = true ;
    					}
    				}
    			}
    		}
    		
    		//⑤ 表单验证函数  若返回flag=true  则提交表单 为false则不提交
    		//如果用户的ID已存在了  那么通过这个check判断表单是否可以提交
    		function checkForm(){
    			return flag ;
    		}
    	</script>

    (2)后台 checkservlet.java 执行真正的数据库验证操作

    //接受传递的参数
    String userid = request.getParameter("userid") ;		
    
    //定义sql语句
    String sql = "SELECT COUNT(userid) FROM user WHERE userid=?" ;
    pstmt = conn.prepareStatement(sql) ;
    pstmt.setString(1,userid) ;
    rs = pstmt.executeQuery() ;
    
    if(rs.next()){
    	if(rs.getInt(1)>0){	// 用户ID已经存在了
    		out.print("true") ;
    	} else {
    		out.print("false") ;
    	}
    }
    

      

  • 相关阅读:
    Spring(001)-Hello Spring
    actuator beans不展示
    Java读取property文件
    PostgreSQL 后端存储
    python 中global() 函数
    python项目配置文件格式
    大数据时代,数据成了研究的基石
    10w数据重建索引报错:java.lang.IllegalStateException: Batch statement cannot contain more than 65535 statements
    java学习day15--API-ArrayList--LinkedList
    java学习day14--API-集合(Collection)+List
  • 原文地址:https://www.cnblogs.com/avivaye/p/3135614.html
Copyright © 2020-2023  润新知