如何在JSP中使用AJAX请求

如何在JSP中使用AJAX请求,ajax,jsp,Ajax,Jsp,我已经用JSP创建了一个注册页面,我想用AJAX验证它。到目前为止,我已经编写了一段创建请求对象(AJAX)的代码 validate.js window.onload=initPage; function initPage() { document.getElementById("username").onblur = checkUsername; document.getElementById("register").disabled = true; } fu

我已经用JSP创建了一个注册页面,我想用AJAX验证它。到目前为止,我已经编写了一段创建请求对象(AJAX)的代码

validate.js

window.onload=initPage;

function initPage() {   
    document.getElementById("username").onblur = checkUsername;
    document.getElementById("register").disabled = true;    
}

function createRequest() {
    try {
        request = new XMLHttpRequest();
    } catch (tryMS) {
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (otherMS) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
                request = null;
            }
        }
    }   
    return request;
}

function checkUsername() {
    document.getElementById("username").className="thinking";
    request=createRequest();
    if(request==null)
        alert("Unable To Fetch Request");
    else
    {
        var name=document.getElementById("username").value;
        var userName=escape(name);
        var url="checkName.jsp?username="+userName;
        request.onreadystatechange=showUserNameStatus;
        request.open("GET", url, true);
        request.send(null);
    }   
}
我遇到的问题是url。我不知道如何在checkName.jsp中验证该用户名。实际上,这种情况是,如果用户名经过验证,那么用户可以自己注册,如果用户名已经注册,那么服务器应该强制用户选择不同的用户名

function showUserNameStatus() {
    if(request.readyState==4)
    {
        if(request.status==200)
        {
            if(request.responseText=="okay")
            {
                document.getElementById("username").className="approved";
                document.getElementById("register").disabled = false;
            }
            else
            {
                document.getElementById("username").className = "denied";
                document.getElementById("username").focus();
                document.getElementById("register").disabled = true;
            }
        }
    }
}

如果我理解,您有一个注册页面jsp,其中您发布了一个AJAX调用来验证用户,如果用户是有效的,那么您想继续,如果您想返回,说明用户已经存在,请选择一个新的


我建议您不要将调用发布到jsp,而是将其发布到servlet/controller/action类(无论您所指的是哪个标准框架),然后返回对ajax调用的响应。

如果我使用的是Struts2框架,那么我如何才能实现这个场景。因为我必须用上面提到的“同意”或“拒绝”来确认客户。希望这有助于: