AJAX通过get提交数据,并获取文本返回结果

AJAX简单示范:通过get提交查询,以验证用户输入,返回结果为纯文本格式。

sample1.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*"%>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Ajax例子一</TITLE>
<SCRIPT language="JavaScript">
var xmlHttp;
function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }else {
        alert("无法创建 XML HTTP 对象");
    }
}

function validateUsername() {
    if(frm.username.value == "") {
        return;
    }else {
        // 后台提交
        var url = "sample1Action.jsp?username="
            + frm.username.value + "&ts=" + new Date().getTime();
        // 如果包含了中文,需要做两次转码
        url = encodeURI(url);
        url = encodeURI(url);
        createXMLHttpRequest();
        xmlHttp.onreadystatechange = handleStatsChange;
        xmlHttp.open("get", url, true);
        xmlHttp.send(null);
    }
}

function handleStatsChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            var returnData = xmlHttp.responseText;
            if(returnData == "ERROR" || returnData == "错误") {
                alert("您输入的用户名已经存在,请重新输入!");
                //frm.username.focus();
            }else if(returnData == "OK"){
                alert("恭喜您,您输入的用户名尚未被人使用!");
            }else {
                //
            }
        }
    }
}
// 其它代码
</SCRIPT>
</HEAD>
<BODY>
<FORM method="post" name="frm" action="">
<TABLE cellspacing="1" cellpadding="4" width="50%" align="center">
    <TBODY>
        <TR>
            <TD width="21%">用户名:</TD>
            <TD><INPUT name="username" size="25" maxlength="20"/>
                <INPUT type="button" onClick="validateUsername();" value="检查用户名" />
            </TD>
        </TR>
    </TBODY>
</TABLE>
</FORM>
</BODY>
</HTML>

sample1Action.jsp

<%@ page contentType="text/html; charset=UTF-8"%><%@ page import="java.util.*"%><%
    //返回纯字符串的时候,JSP文件不要有空格,换行符之类的东西;否则影响前台解析(XML、JSON结果除外)。
    
    String username = request.getParameter("username");

    // 如果包含了中文,需要做解码
    if(username != null) {
        username = java.net.URLDecoder.decode(username, "UTF-8");
    }
    
    // do something
    String result = "OK";
    if("admin".equals(username)) {
        result = "ERROR";
    }else if("管理员".equals(username)) {
        result = "错误";
    }
    System.out.println(username + "\t" + result);
    
    // 返回值包含了中文,需要编码            
    response.setContentType("text/plain;charset=utf-8");
    response.getWriter().print(result);    
%>
原文地址:https://www.cnblogs.com/nayitian/p/2882136.html