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); %>