我想实现的是在登录窗口输入用户名密码后到servlet控制,通过servlet查找数据库是否存在此用户,如果不存在要弹出一个窗口提示“登录失败”,然后在登录界面可以接着输入信息!

解决方案 »

  1.   


    <script type="text/javascript">   
    var xhr ; //初始化 xhr 对象 
    // return value : 1 : IE , 2 , Mozila , 0 : create xhr error ; 
    function createXHR(){ 
    //1,创建xhr 对象 . 
    if( window.ActiveXObject ){ 
    xhr = new ActiveXObject( "Microsoft.XMLHTTP" ) ; 
    return 1 ; 
    }else if( window.XMLHttpRequest ){ 
    xhr = new XMLHttpRequest(); 
    return 2 ; 
    }else{ 
    return 0 ; 
    }   
    }   
      
    //////////// 用户名是否存在 ////////////////////   //将用户填写的用户名发送到服务器端 
    function checkUserName(){ 
    var ret = createXHR(); 
    if( ret == 0 ){ 
    alert( "create xhr error" ) ; 
    }else{ 
    //在xhr中注册用于处理应答的函数(handleCheck) 
    xhr.onreadystatechange = handleCheck ; 
    /* 
    //使用Get方式向服务器发送请求 . 
    var url = makeQueryString( "/ajax/reg.jsp" );   
    xhr.open( "get" , url ) ; 
    xhr.send( null ); 
    */ 
      
    //通过Post 形式向服务器发送数据 . 
    var url = "需要处理的action的地址" ; 
    xhr.open( "post" , url ) ;   
    xhr.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded" ) ; 
    xhr.send( makeQueryString( null ) ) ; 
    }   
    }   
      
    //在指定的URL上添加参数  
    function makeQueryString( url ){ 
    var name = document.getElementById( "nameId" ).value ; 
    var queryString ; 
    if( url == null ){ 
    return "name=" + name ; 
    }else{ 
    return url + "?name=" + name ; 

    }   function handleCheck(){  
    //通信进程结束 . 
    //readyState : 1: 初始化阶段 2 :连接建立阶段 3 : 通信中阶段 4 : 通信结束 
    if( xhr.readyState == 4 ){   
    //status==200,表示服务器运行正常 
    if( xhr.status == 200 ){ 
    processResult(); 
    }else if(document.getElementById( "nameId" ).value==""){ 
    document.getElementById( "nameId2" ).firstChild.nodeValue="用户名不能为空"; 
    document.getElementById( "nameId2" ).color="red"; 
      } 


      
    function processResult(){ 
    //取得应答内容 ,把应答内容显示示在网页上  
    var span = document.getElementById( "msgId" ) ; 
    span.innerHTML = xhr.responseText ; 

    <script>
      

  2.   

    如果servlet查找数据库如果不存在,则再次跳转到登陆页面,带一个字段标示这是登陆失败之后跳过来的
    页面刚载入的时候获取该字段判断是不是为空,如果不为空,则表示登陆失败,则弹框提示
      

  3.   

    但是不用2楼那么多,把用户名密码传到后台,然后传回一个参数,比如success 这个参数,如果success==“true”那么就跳转到成功页面 location.href=index.jsp如果success=="false"就alert(“用户名或者密码错误”)
    <script type="text/javascript">
    var jq = jQuery.noConflict();
            function va(){
             var name=jq('#username').val();
             var pass=jq('#password').val();
             name = name.replace(/^\s+|\s+jq/g,"");
             pass = pass.replace(/^\s+|\s+jq/g,"");
             if(name==""){
      alert("用户名不能为空");
        }
        else if(pass==""){
       alert("密码不能为空");
        }else{
              jq.get("userLoginIndex.action?username="+name+"&password="+pass+"&da="+new Date(),null,callba);
             }
            }
            function callba(data){
    if(data=='passerror'){
    alert("用户名或者密码错误!");
    }
    else{
    jq('#log').hide();
    jq("#eor").html(
    "<div class='welcome'>"+
    "<a href='javaScript:logOut()' target='_parent'>"+
    "<strong>退出登录</strong>"+
    "</a>"+
    data 
    +"您好!&nbsp;&nbsp;"+
    "<a href='person.action' target='_parent'>"+
    "【进入个人中心】"
    +"</a>"+
    "</div>"
    );
    }
    }
            function logOut(){
             location.href="userLogOut.action?"+location.href;
            }
            </script>