我如何在JSP中使用AJAX请求

时间:2014-05-24 14:25:24

标签: ajax jsp

我在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);
    }   
}

我遇到的问题是网址。我不知道如何在checkName.jsp中验证该用户名。实际上,情况是如果userName被验证,那么用户可以注册自己,如果用户名已经注册,那么服务器应该强制用户选择不同的用户名。

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;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

如果我理解,你有一个注册页面jsp,你在其中发布一个AJAX调用来验证用户,如果用户有效,那么你想要继续其他你想要退回说明用户已经现在,选择一个新的。

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