想实现:
        登陆的时候,提交了 用户名 密码 ,
        到后台验证,
        通过,提交;没通过,则 只是刷新登陆框
实现了:
        想实现的遇见了的问题:
        会弹出 框框,点了确定又弹一个,说是js 未指明的错误
        需要去掉这多余的框框,,,为什么会弹出来的
        代码,不复杂,
先谢谢了:
        分不够再加,我一两千分呢我  QQ  305954240
   tel  13141439170

解决方案 »

  1.   

    index.jsp 页面:
    <script language="javascript" type="text/javascript">
    var req;
    function validate2() {
    var idField = document.getElementById("userName");
    var url = "Validate.jsp?id=" + idField.value;
    if(window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open("GET", url, true);
    req.onreadystatechange = callback2;
    req.send(null);
    }

    function callback2() {
    if(req.status == 200) {
    if(req.readyState == 4) {
    //alert(req.responseText);
    var msg1 = req.responseXML.getElementsByTagName("msg1")[0];
    alert(msg1.childNodes[0].nodeValue);
            setMsg2(msg1.childNodes[0].nodeValue);
    }
    }
    }

    function setMsg2(msg1) {
    //alert(msg);
    mdiv = document.getElementById("usermsg2");
    if(msg1 == "invalid") {
    flag=0;
    mdiv.innerHTML = "<br><font color='red'>文件名已存在,请更换文件名!</font>";
    } else {

    flag=1;
    mdiv.innerHTML = "<font color='green'>文件名可用!</font>";

    }
    }
    </script>
    <form name="formtest" method="post" action="bridge/cx.jsp" >  
                   用户名:<input type=text name="userName" size="20" /><span id="usermsg2"></span><br>
                    密&nbsp;&nbsp;&nbsp;码:<input type=password name="password" size="22"/><br><br>
                    <input type="button" name="submit" value="登录" onClick="validate2()"/>&nbsp;&nbsp;&nbsp;
                   <input type="reset" name="reset" value="重置"/>
    </form>Validate.jsp
    <%@ page language="java" pageEncoding="utf-8" import="java.sql.*,java.io.*,org.apache.struts.upload.*,org.apache.torque.util.Criteria,org.apache.struts.action.*,java.util.*,bit.sde.om.*,bit.sde.homework.util.*,bit.sde.homework.om.*"%>
    <%
    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-store"); //HTTP1.1
    response.setHeader("Pragma", "no-cache"); //HTTP1.0
    response.setDateHeader("Expires", 0); //prevents catching at proxy server Object object =  request.getParameter("id");
    String filenametemp = (String) object; //得到用户名
    System.out.println("filenametemp: "+filenametemp); if(true){
    if (false) {
    response.getWriter().write("<msg1>invalid</msg1>");
    } else {
    response.getWriter().write("<msg1>valid</msg1>");
    }
    } System.out.println("***** test OK");
    %>
      

  2.   

    代码: 可以获得Validate.jsp 传来的数据:     但是弹出框框
      

  3.   

     req.open("GET", url, true);
    提交到action里面
    JS:
      if(req.status == 200) {
            if(req.readyState == 4) {
            //返回hello word!-----(writer.println("hello word!");)
    var a =httpRequest.responseText;
                   // hello word!
                   alert(a);
     
    后台URL对应action里面:
    JAVA:
                   response.setContentType("text/xml");
    response.setCharacterEncoding("UTF-8");
                    PrintWriter writer = response.getWriter();
    writer.println("hello word!");
    writer.flush();
    writer.close();
      

  4.   

    可以获得Validate.jsp 传来的数据:     但是弹出框框说是js 未指明的错误 
            
    需要去掉这多余的框框,,,
      

  5.   

    我这里有个很简单的AJAX的例子,可以说是AJAX框架,很多地方可以用到sample1_1.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    <script language="javascript">
    var http_request = false;
    function send_request(url) {//初始化、指定处理函数、发送请求的函数
    http_request = false;
    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest) { //Mozilla 浏览器
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {//设置MiME类别
    http_request.overrideMimeType('text/xml');
    }
    }
    else if (window.ActiveXObject) { // IE浏览器
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }
    if (!http_request) { // 异常,创建对象实例失败
    window.alert("不能创建XMLHttpRequest对象实例.");
    return false;
    }
    http_request.onreadystatechange = processRequest;
    // 确定发送请求的方式和URL以及是否同步执行下段代码
    http_request.open("GET", url, true);
    http_request.send(null);
    }
    // 处理返回信息的函数
        function processRequest() {
            if (http_request.readyState == 4) { // 判断对象状态
                if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
                    alert(http_request.responseText);
                } else { //页面不正常
                    alert("您所请求的页面有异常。");
                }
            }
        }
    function userCheck() {
    var f = document.form1;
    var username = f.username.value;
    if(username=="") {
    window.alert("用户名不能为空。");
    f.username.focus();
    return false;
    }
    else {
    send_request('sample1_2.jsp?username='+username);
    }
    }
    </script>
    <link href="css/style.css" rel="stylesheet" type="text/css">
    </head><body>
    <form name="form1" action="" method="post">
    用户名:<input type="text" name="username" value="">&nbsp;
    <input type="button" name="check" value="唯一性检查" onClick="userCheck()">
    <input type="submit" name="submit" value="提交">
    </form>
    <!--span style="cursor: pointer; text-decoration: underline" onclick="send_request('2.jsp?username=educhina')">Send a request</span-->
    </body>
    </html>
      

  6.   

    这个是上面那个页面的请求页面sample1_2.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java" errorPage="" %>
    <%
    String username = request.getParameter("username");
    if("educhina".equals(username)) out.print("用户名已经被注册,请更换一个用户名。");
    else out.print("用户名尚未被使用,您可以继续。");
    %>
      

  7.   

    问题已 解决,
    附上代码:供参考:  
           
            <script language="javascript" type="text/javascript">
    var req;
    function validate2() {
    var idField = document.getElementById("userName");
    var url = "Validate.jsp?id=" + idField.value ;
    if(window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open("GET", url, true);
    req.onreadystatechange = callback2;
    req.send(null);
    }

    function callback2() {
    if(req.readyState == 4) {
    if(req.status == 200) {
    var msg1 = req.responseXML.getElementsByTagName("msg1")[0];
            setMsg2(msg1.childNodes[0].nodeValue);
    }
    }
    }

    function setMsg2(msg1) {
    mdiv = document.getElementById("usermsg2");
    if(msg1 == "invalid") {
    flag=0;
    mdiv.innerHTML = "<br><font color='red'>文件名已存在,请更换文件名!</font>";
    } else {
    flag=1;
    mdiv.innerHTML = "<font color='green'>文件名可用!</font>";
    formtest.submit();
    }
    }
        </script>
            <form name="formtest" method="post" action="bridge/cx.jsp" >
                  
                   用户名:<input type=text name="userName" size="20" /><span id="usermsg2"></span><br>
                    密&nbsp;&nbsp;&nbsp;码:<input type=password name="password" size="22"/><br><br>
                    <input type="button" name="submit1" value="登录" onClick="validate2()"/>&nbsp;&nbsp;&nbsp;
                   <input type="reset" name="reset" value="重置"/>
                        
                  
                  </form>
    <%@ page language="java" pageEncoding="utf-8" import="java.sql.*,java.io.*,org.apache.struts.upload.*,org.apache.torque.util.Criteria,org.apache.struts.action.*,java.util.*,bit.sde.om.*,bit.sde.homework.util.*,bit.sde.homework.om.*"%>
    <%
    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-store"); //HTTP1.1
    response.setHeader("Pragma", "no-cache"); //HTTP1.0
    response.setDateHeader("Expires", 0); //prevents catching at proxy server
    Object object =  request.getParameter("id");
    String filenametemp = (String) object; //得到用户名
    System.out.println("filenametemp: "+filenametemp);
    /*
    //check the database
    Criteria crit = new Criteria();
    crit.add(DownloadFilePeer.FILENAME, realname);
    List list = DownloadFilePeer.doSelect(crit);
          */
    if(true){
    if (true) {
    response.getWriter().write("<msg1>invalid</msg1>");
    } else {
    response.getWriter().write("<msg1>valid</msg1>");
    }
    } System.out.println("***** test OK");
    %>