Ajax 使用XMLHttpRequest对象发送数据和接收处理XML源代码

客户端HTML代码(ajax.html):

 
 
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
  2.         "http://www.w3.org/TR/html4/loose.dtd">   
  3. <html>   
  4. <head>   
  5.     <title></title>   
  6.     <script type="text/javascript" src="jslib/verityown.js"></script>   
  7. </head>   
  8. <body>   
  9.     用户名校验ajax实例,请输入用户名:<br/>   
  10.     <input type="text" id="userName" />   
  11.     <input type="button" value="校验" onclick="verity()" />   
  12.     <div id="result"></div>   
  13. </body> 

客户端JS代码(verityown.js):

 
 
  1. var xmlhttp;   
  2. function verity() {   
  3.     var userName = document.getElementById("userName").value;   
  4.     if (window.XMLHttpRequest) {   
  5.         xmlhttp = new XMLHttpRequest();   
  6.         if (xmlhttp.overrideMimeType) {   
  7.             xmlhttp.overrideMimeType("text/xml");   
  8.         }   
  9.     } else if (window.ActiveXObject) {   
  10.         var activexName = ["MSXML2.XMLHTTP""Microsoft.XMLHTTP"];   
  11.         for (var i = 0; i < activexName.length; i++) {   
  12.             try {   
  13.                 xmlhttp = new ActiveXObject(activexName[i]);   
  14.                 break;   
  15.             } catch (e) {   
  16.             }   
  17.         }   
  18.     }   
  19.     xmlhttp.onreadystatechange = callback;   
  20.     xmlhttp.open("POST""AjaxXmlServer"true);   
  21.     xmlhttp.setRequestHeader("Content-Type""application/x-www-form-urlencoded");   
  22.     xmlhttp.send("name=" + userName);   
  23. }   
  24.  
  25.  
  26. function callback(data) {   
  27.     if (xmlhttp.readyState == 4) {   
  28.         if (xmlhttp.status == 200) {   
  29.             var domObj = xmlhttp.responseXML;   
  30.             if (domObj) {   
  31.                 var messageNodes = domObj.getElementsByTagName("message");   
  32.                 if (messageNodes.length > 0) {   
  33.                     var messageNode = messageNodes[0].firstChild;   
  34.                     var responseMessgae = messageNode.nodeValue;   
  35.                     document.getElementById("result").innerHTML = responseMessgae;   
  36.                 } else {   
  37.                     alert("Error");   
  38.                 }   
  39.             } else {   
  40.                 alert("Error");   
  41.             }   
  42.         }   
  43.     }   

服务器端代码(AjaxXmlServer.java):

 
 
  1. import com.sun.deploy.net.HttpRequest;   
  2. import com.sun.deploy.net.HttpResponse;   
  3.  
  4.  
  5. import javax.servlet.http.HttpServlet;   
  6. import javax.servlet.http.HttpServletRequest;   
  7. import javax.servlet.http.HttpServletResponse;   
  8. import javax.servlet.ServletException;   
  9. import java.io.IOException;   
  10. import java.io.PrintWriter;   
  11. import java.net.URLDecoder;   
  12.  
  13.  
  14. public class AjaxXmlServer extends HttpServlet {   
  15.     protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)   
  16.         throws ServletException, IOException {   
  17.         try {   
  18.             httpServletResponse.setContentType("text/xml;charset=utf-8");   
  19.             PrintWriter out = httpServletResponse.getWriter();   
  20.             String old = httpServletRequest.getParameter("name");   
  21.             StringBuilder builder = new StringBuilder();   
  22.             builder.append("<message>");   
  23.             if (old == null || old.length() == 0) {   
  24.                 builder.append("用户名不能为空");   
  25.             } else {   
  26.                 String name = old;   
  27.                 if (name.equals("alan")) {   
  28.                     builder.append("用户名[" + name + "] 已经存在, 请使用其它用户名");   
  29.                 } else {   
  30.                     builder.append("用户名[" + name + "] 尚未存在, 可以使用该用户名");   
  31.                 }   
  32.                 builder.append("</message>");   
  33.             }   
  34.             out.println(builder.toString());   
  35.         } catch (Exception e) {   
  36.             e.printStackTrace();   
  37.         }   
  38.  
  39.  
  40.     }   
  41.  
  42.  
  43.     protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)   
  44.         throws ServletException, IOException {   
  45.             doGet(httpServletRequest, httpServletResponse);   
  46.     }   

服务器端配置文件(web.xml):

 
 
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"   
  3.            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4.            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
  6.            version="2.5">   
  7.  
  8.  
  9.     <servlet>   
  10.         <servlet-name>AjaxXmlServer</servlet-name>   
  11.         <servlet-class>AjaxXmlServer</servlet-class>   
  12.     </servlet>   
  13.     <servlet-mapping>   
  14.         <servlet-name>AjaxXmlServer</servlet-name>   
  15.         <url-pattern>/AjaxXmlServer</url-pattern>   
  16.     </servlet-mapping>   
  17. </web-app> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值