ajaxServlet.java程序清单:package com;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/**------------------------------------------------------* 文件名: ajaxServlet.java* 创建日期: 2005-10-25* 原作者: miaohai* 版权所有: miaohai* 功能说明: 生成XML文档** 修改记录:N/A*------------------------------------------------------*/public class ajaxServletextends HttpServlet{private static final String CONTENT_TYPE="text/xml; charset=gb2312";public void init()throws ServletException{}public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{response.setContentType(CONTENT_TYPE);PrintWriter out=response.getWriter();String action=request.getParameter("action");if(("send").equals(action)){StringBuffer sb=new StringBuffer("<type>");sb.append("<type_name>AA</type_name>");sb.append("<type_name>BB</type_name>");sb.append("<type_name>CC</type_name>");sb.append("<type_name>DD</type_name>");sb.append("</type>");out.write(sb.toString());out.close();}}}
html页面:<html><head><title>AJAX.html</title></head><script type="text/javascript">/*通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档*/function getResult(){var url = "servlet/com.ajaxServlet?action=send";if (window.XMLHttpRequest) {req = new XMLHttpRequest();}else if (window.ActiveXObject){req = new ActiveXObject("Microsoft.XMLHTTP");}if(req){req.open("GET",url, true);req.onreadystatechange = complete;req.send(null);}}/*分析返回的XML文档*/function complete(){if (req.readyState == 4){if (req.status == 200) {var type = req.responseXML.getElementsByTagName("type_name");var str=new Array();for(var i=0;i<type.length;i++){str[i]=type[i].firstChild.data;document.all['td'].innerHTML+=str[i]+"<BR>";}}}}</script><body onLoad="getResult()"><table width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td id="td"> </td></tr></table></body>
html页面:<html><head><title>AJAX.html</title></head><script type="text/javascript">/*通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档*/function getResult(){var url = "servlet/com.ajaxServlet?action=send";if (window.XMLHttpRequest) {req = new XMLHttpRequest();}else if (window.ActiveXObject){req = new ActiveXObject("Microsoft.XMLHTTP");}if(req){req.open("GET",url, true);req.onreadystatechange = complete;req.send(null);}}/*分析返回的XML文档*/function complete(){if (req.readyState == 4){if (req.status == 200) {var type = req.responseXML.getElementsByTagName("type_name");var str=new Array();for(var i=0;i<type.length;i++){str[i]=type[i].firstChild.data;document.all['td'].innerHTML+=str[i]+"<BR>";}}}}</script><body onLoad="getResult()"><table width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td id="td"> </td></tr></table></body>
<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);
if(http_request.responseText==-1)
{
//alert('该用户已经存在!');
document.getElementById('usernameinfo').innerHTML = '<font color=red>对不起,该用户已经存在!</font>'
}
else
{
if(http_request.responseText==1)
{
document.getElementById('usernameinfo').innerHTML = '<font color=green>您可以放心注册</font>'
}
}
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
function userCheck() {
var f = document.form1;
var username = f.username.value;
if(username=="") {
//window.alert("用户名不能为空。");
//f.username.focus();
document.getElementById('usernameinfo').innerHTML = '<font color=red>对不起,用户名不能为空!</font>'
return false;
}
else {
if(username.length<2 || username.length>50)
{
document.getElementById('usernameinfo').innerHTML = '<font color=red>对不起,用户名长度在2-50之间!</font>'
f.username.focus();
return false;
}
send_request('checkuser.asp?username='+username);
}
}
</script>
<!--#include file="inc/db_inc.asp"-->
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConn
username = trim(request("username"))
if username="" then
response.write -1
response.end
end ifset rs=server.createobject("adodb.recordset")
sql="select [username] from sf_user where [username]='" & username & "'"
rs.open sql,conn,1,1
if not rs.eof and not rs.bof then
response.write -1
response.end
else
response.write 1
end if
%>可以用php改改,呵呵,这个应该很简单拉。
var xml = "<Login>";
xml += "<name>"+username+"<\/name>";
xml += "<pwd>"+userpwd+"<\/pwd>";
xml += "<\/Login>";
http_request.onreadystatechange = processRequest;
var url="CheckLogin.php";
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.open("POST", url, true);
http_request.send(xml);那么在服务器端怎么接受这个数据呢?
<input type="hidden" name="L_ID" value="0">
在验证之前修改过他,但是提交服务器验证返回之后,这个值又被还原为0了。
xajax工具包用php写成
只需设置dhtml对象的id,一般不用书写js代码
你看一下他的示例程序就知道了由于涉及的知识面较广,从你的几个发问中可以看出,你尚不具备自己书写的能力