`
terran_li2008
  • 浏览: 200392 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ajax中使用XML传输数据

    博客分类:
  • Ajax
阅读更多

postingXML.html :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sending an XML Request</title>

<script type="text/javascript">

var xmlHttp;

function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}
   
function createXML() {
    var xml = "<pets>";
   
    var options = document.getElementById("petTypes").childNodes;
    var option = null;
    for(var i = 0; i < options.length; i++) {
        option = options[i];
        if(option.selected) {
            xml = xml + "<type>" + option.value + "<\/type>";
        }
    }
   
    xml = xml + "<\/pets>";
    return xml;
}

function sendPetTypes() {
    createXMLHttpRequest();
   
    var xml = createXML();
    var url = "PostingXMLExample?timeStamp=" + new Date().getTime();
   
    xmlHttp.open("POST", url, true);
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
    xmlHttp.send(xml);
}
   
function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            parseResults();
        }
    }
}

function parseResults() {
    var responseDiv = document.getElementById("serverResponse");
    if(responseDiv.hasChildNodes()) {
        responseDiv.removeChild(responseDiv.childNodes[0]);
    }
   
    var responseText = document.createTextNode(xmlHttp.responseText);
    responseDiv.appendChild(responseText);
}


</script>
</head>

<body>
  <h1>Select the types of pets in your home:</h1>
 
  <form action="#">
    <select id="petTypes" size="6" multiple="true">
        <option value="cats">Cats</option>
        <option value="dogs">Dogs</option>
        <option value="fish">Fish</option>
        <option value="birds">Birds</option>
        <option value="hamsters">Hamsters</option>
        <option value="rabbits">Rabbits</option>
    </select>
   
    <br/><br/>
    <input type="button" value="Submit Pets" onclick="sendPetTypes();"/>
  </form>

  <h2>Server Response:</h2>

  <div id="serverResponse"></div>

</body>
</html>

 

PostingXMLExample.java :

package ajaxbook.chap3;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class PostingXMLExample extends HttpServlet {
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       
        String xml = readXMLFromRequestBody(request);
        Document xmlDoc = null;
        try {
            xmlDoc =
                    DocumentBuilderFactory.newInstance().newDocumentBuilder()
                    .parse(new ByteArrayInputStream(xml.getBytes()));
        }
        catch(ParserConfigurationException e) {
            System.out.println("ParserConfigurationException: " + e);
        }
        catch(SAXException e) {
            System.out.println("SAXException: " + e);
        }

        /* Note how the Java implementation of the W3C DOM has the same methods
         * as the JavaScript implementation, such as getElementsByTagName and
         * getNodeValue.
         */
        NodeList selectedPetTypes = xmlDoc.getElementsByTagName("type");
        String type = null;
        String responseText = "Selected Pets: ";
        for(int i = 0; i < selectedPetTypes.getLength(); i++) {
           type = selectedPetTypes.item(i).getFirstChild().getNodeValue();
           responseText = responseText + " " + type;
        }
       
        response.setContentType("text/xml");
        response.getWriter().print(responseText);
    }
   
    private String readXMLFromRequestBody(HttpServletRequest request){
        StringBuffer xml = new StringBuffer();
        String line = null;
        try {
            BufferedReader reader = request.getReader();
            while((line = reader.readLine()) != null) {
                xml.append(line);
            }
        }
        catch(Exception e) {
            System.out.println("Error reading XML: " + e.toString());
        }
        return xml.toString();
    }
}

分享到:
评论

相关推荐

    ajax中使用xml传递数据

    在dwr框架和ajax中,使用xml传递数据,与服务器解析xml

    ajax经典怎样传输数据

    ajax经典怎样传输数据,$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: "POST", // 默认:GET 请求方式:[POST/GET] dataType: ...

    掌握Ajax 学习资料pdf

    掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出...掌握 Ajax第 7 部分-在请求和响应中使用 XML 掌握 Ajax第 10 部分--使用 JSON 进行数据传输 掌握 Ajax第 11 部分--服务器端的 JSON

    利用JSON实现Ajax中数据传递

    本文介绍了Ajax技术的基本原理,以及JSON技术的特点,讨论了在Ajax技术中从服务器向客户端传递数据的方式,通过实例证明使用JSON代替XML生成并传递数据的方式快速有效。

    AJax详解.chm

    第 7 部分: 在请求和响应中使用 XML 第 8 部分:在请求和响应中使用 XML 第 9 部分: 使用 Google Ajax Search API 第 10 部分: 使用 JSON 进行数据传输 第 11 部分:将 Ajax 带入 Eclipse 的 Ajax Toolkit ...

    Ajax如何传输Json和xml数据

    ajax传输xml数据:只要把数据封装成xml格式就可以实现传输,前台js用responseXML接收xml参数,后台读取用流和dom4j来解析 前台页面 &lt;&#37;@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt; ...

    AJAX 学习资料WORD文档

    第 1 部分: Ajax 入门...第 7 部分: 在请求和响应中使用 XML 80 第 8 部分: 在请求和响应中使用 XML 87 第 9 部分: Web 2.0 用户界面技术 95 第 10 部分: 使用 JSON 进行数据传输 100 第 11 部分: 服务器端的 JSON 105

    Ajax详解

    Ajax简介、使用Javascript和Ajax发出异步请求、Ajax中的高级请求响应、利用Dom进行Web响应、操作dom、建立基于Dom的Web应用程序、在请求和响应中使用XML、使用Json进行数据传输、借鉴最优秀的Ajax应用 ...

    springmvc + jquery + ajax + json 异步传递数据

    springmvc jquery ajax json 异步传递数据 springmvc异步传递请求 已包含全部源代码实现 把jar包放入 然后新建文件 配置xml !!!!! 全部资源

    JSON 核心技术应用

    实际上,对于大多数 Web 应用来说,他们根本不需要复杂的 XML 来传输数据,XML 的扩展性很少具有优势,许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比,返回 HTML 片段大大降低...

    ajax xml实例

    ajax xml 的例子,ajax初学者可以看懂的例子,xml是怎样传递数据的。

    Ajax基础实例PPT

    Ajax基础 使用Ajax发送异步请求 在请求和响应中使用XML 使用JSON进行数据传输

    ajax教程(ajax基础,实例)

    Ajax基础 使用Ajax发送异步请求 在请求和响应中使用XML 使用JSON进行数据传输

    ajaxDemo.zip

    AJAX: 全称Asynchronous JavaScript And XML,即异步JS和...XML: 可扩展标记语言,被设计用来传输和存储数据。 与HTML的区别:HTML中都是预定义的标签,而XML中没有预定义标签,全都是自定义标签,用来表示一些数据。

    框架之AJAX,ajax,页面部分刷新,实现动态提交数据到服务器;动态从服务区获取数据 get,post两种传递数据方法,Jso

    ajax,页面部分刷新,实现动态提交数据到服务器;动态从服务区获取数据。get,post两种传递数据方法,Json、html、text、xml等多种数据格式。

    《Ajax技术简介和案例分析》(42P)

    使用XMLHttpRequest进行异步数据传输 使用JavaScript将所有这些绑在一起 XMLHttpRequest 1999年IE5.0作为一个ActiveX对象形式引入了XMLHttpRequest对象 目的是实现通过后台获取数据 其他浏览器则把它作为window...

    NVelocity入门,为服务器与客户端传输xml数据,实现Ajax通信铺平道路

    NULL 博文链接:https://depravedangel.iteye.com/blog/335598

    Ajax完全自学手册(源代码).rar

    柳州龙腾.xml XML-无限数据传输 Test4Document.htm 访问DOM对象的相关节点 Test4Document.htm 检测节点类型 Test4Attribute.htm 节点的属性解析 get&setAttribute.htm 节点的属性解析 Test4Element.htm ...

    ajax数据传输方式实例详解

    主要介绍了ajax数据传输方式,结合实例形式较为详细的分析总结了ajax数据传输的原理与传输文本、xml及json格式数据的具体实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics