`
ihuashao
  • 浏览: 4722031 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

xmlhttp初体验

阅读更多

太久没有研究过新技术了.作为一个程序员,我觉得很惭愧.老早就想看看关于xmlhttp的技术了,今天总算有点时间,做个一个最初的体验.马上就爱上了它.
如果你想不刷新页面就可以与后台进行数据交互,或者在异构系统之间交换数据,xmlhttp技术是个不错的选择.
下面是我的一个很小的体验程序,参考了csdn网友s_phoenix()给人的回贴.
首先建一个tomcat的web项目.

1:-------index.htm文件内容如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<script language="javascript">
var XML="<root><test>李春雷</test><test></test></root>"
var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
var xmlDoc=new ActiveXObject("Msxml2.DOMDocument");
function test(){//客户端xml的解析
xmlDoc.loadXML(XML);
if(xmlDoc.parseError.line>0){
throw xmlDoc.parseError.reason;
}
var nodes= xmlDoc.selectNodes("/root/test");
for(var i=0;i<nodes.length;i++){
alert(nodes.item(i).text);
}
}

function action(){//客户端和服务端的通讯
xmlHttp.open("post","http://127.0.0.1:8888/xmlhttpTest/UrlTestServlet",false);
xmlHttp.setRequestHeader("context-type","text/xml;charset=utf-8");
xmlHttp.send(XML);
var showstr=xmlHttp.responseText;
alert(showstr);
}

</script>
<button onclick="test();">查看将要传输的xml</button><br/>
<button onclick="action();">朝服务器传送xml,并接收服务器回应</button>
</BODY>
</HTML>


2:------------写一个servlet: UrlTestServlet.java

/*
* 创建日期 2005-4-7
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.lcl;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.dom4j.io.*;
import org.dom4j.*;


/**
* @author lcl
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/

public class UrlTestServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/xml;charset=utf-8";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
InputStream is=request.getInputStream();

SAXReader reader=new SAXReader();
Document doc=null;
try{
doc=reader.read(is);
} catch(Exception ex){
System.out.println(ex);
}
String[] s= getElementTexts(doc,"test");
out.println("数据交换成功:返回" + s[0] + s[1]);
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}

private String getElementText(Document doc,String name){
return doc.getRootElement().element(name).getText();
}

private String[] getElementTexts(Document doc,String name){
List l=doc.getRootElement().elements(name);
Iterator it=l.iterator();
List l1=new LinkedList();
while(it.hasNext()){
Element e=(Element)it.next();
l1.add(e.getText());
}
return (String[])l1.toArray(new String[]{});
}

//Clean up resources
public void destroy() {
}
}

3:--------web.xml更改如下(加servlet映射):

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>


<!-- JSPC servlet mappings start -->

<servlet>
<servlet-name>UrlTestServlet</servlet-name>
<servlet-class>com.lcl.UrlTestServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>UrlTestServlet</servlet-name>
<url-pattern>/UrlTestServlet</url-pattern>
</servlet-mapping>


<!-- JSPC servlet mappings end -->
<welcome-file-list>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
</web-app>

好了,启动tomcat,访问:http://127.0.0.1:8888/xmlhttpTest/work/(如果你的tomcat端口是8080,就改一下)
看到结果了吧,真的很不错.不用刷新页面,就让htm前台页面和后台进行了一次数据交换.

你甚至可以在不同的服务器之间进行数据交换,比如一个mis系统,和一个gis系统,想整合成一个系统,原先我们是用了一个frame,左边的是mis,右边的是gis,通过javascript在两个系统间交换数据.如果用xmlhttp技术,完全没必要这样了.

分享到:
评论

相关推荐

    xmlhttp.rar_XMLHTTP delphi_delphi xmlHt_delphi xmlhttp_xmlhttp

    这个“xmlhttp.rar”压缩包包含的资源是关于如何在Delphi环境中使用XMLHTTP组件来从网络获取数据,特别是通过调用百度API获取实时时间的示例。这对于初学者来说是一个很好的起点,因为它可以帮助理解如何与Web服务...

    xmlhttp说明文档,xmlhttp中文帮助文档,chm格式

    xmlhttp中文帮助文档 Xmlhttp是一种浏览器对象, 可用于模拟http的GET和POST请求。配合JavaScript可以实现页面数据在无刷新下的定时数据更新,如果应用在聊天室、文字直播上可以取得较好的视觉效果。 使用范例: ...

    XMLHTTP

    这个技术的出现极大地推动了Web应用的发展,尤其是在AJAX(Asynchronous JavaScript and XML)模式流行之后,使得网页无需刷新就能更新部分内容,提升了用户体验。 XMLHTTP对象主要包含以下几个核心方法: 1. `...

    VFP xmlHTTP应用实例

    《VFP xmlHTTP应用实例——构建API与三层架构》 Visual FoxPro(VFP)是Microsoft推出的一款数据库开发工具,以其高效、灵活的特点在数据库编程领域占有一定地位。本实例将探讨如何在VFP中利用xmlHTTP对象进行API的...

    xmlHttp中文参考手册

    XMLHttp是AJAX(Asynchronous JavaScript and XML)技术的核心组成部分,它允许浏览器在不刷新整个页面的情况下与服务器进行异步数据交换,极大地提升了用户体验。 XMLHttpRequest对象是JavaScript中的一个内置对象...

    易语言xmlhttp简单应用

    易语言XMLHTTP简单应用主要涉及的是使用易语言编程来实现对XMLHTTP接口的调用,以便进行网络数据的请求和处理。XMLHTTP是Microsoft开发的一个组件,它允许程序员通过HTTP或HTTPS协议发送异步HTTP请求,获取服务器...

    XMLHTTP类模块.rar

    这一特性极大地提高了Web应用的交互性和用户体验。在易语言中,这个类模块可能通过模拟XMLHttpRequest对象的功能,为程序提供了发送GET、POST等HTTP请求的能力。 以下是关于XMLHTTP类模块的一些关键知识点: 1. **...

    XMLHttp中文参考手册

    Xmlhttp对象,也被称为“AJAX”(Asynchronous JavaScript and XML)的核心,允许网页在不刷新整个页面的情况下与服务器进行交互,提升了用户体验,实现了网页的动态更新。 1. **XMLHttp对象基础**: - **创建对象...

    Excel vba使用XMLHTTP进行异步下载的演示

    在Excel VBA编程中,有时候我们需要从网络上下载文件,特别是在处理大文件时,传统的同步下载方式可能会导致Excel应用程序无响应,严重影响用户体验。为了解决这个问题,我们可以利用XMLHTTP对象进行异步下载,使得...

    xmlhttp

    XMLHTTP的名称虽然包含了XML,但实际上,传输的数据格式不仅限于XML,也可以是JSON、文本或二进制数据等。这一特性使得它在处理各种类型的数据时都非常灵活。 XMLHttpRequest的工作原理: 1. 创建实例:首先,我们...

    XMLHTTP对象参考手册

    最通用的定义为:XmlHttp是一套可以在...现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。

    XMLHTTP 例子

    XMLHTTP是Microsoft ActiveX组件,用于在客户端与服务器之间进行异步...这个例子为学习XMLHTTP和Indy提供了实践素材,同时也涉及到了多线程编程,对于理解Web客户端与服务器的交互以及提升用户体验有很好的教学价值。

    易语言源码XMLHTTP方式访问网页.rar

    《易语言XMLHTTP方式访问网页源码解析与应用》 在信息技术日新月异的今天,易语言作为一款中文编程工具,以其独特的图形化编程界面和简洁的语法,深受初级和中级程序员的喜爱。本篇文章将深入探讨易语言通过XMLHTTP...

    VB使用Microsoft.XMLHTTP判断程序是否联入互联网

    实际应用中应添加适当的错误处理逻辑,以提高代码的健壮性和用户体验。 通过以上分析可以看出,使用 `Microsoft.XMLHTTP` 对象可以在不需要额外控件的情况下简单有效地实现VB程序联网检测的功能。这对于开发者来说...

    详解XMLHTTP控件的应用

    ### 详解XMLHTTP控件的应用 #### XMLHTTP控件简介 XMLHTTP是一个非常重要的控件,主要用于客户端通过HTTP协议与服务器进行通信。该控件在Windows操作系统中是默认自带的,除了Windows 98及更早版本外。简单来说,...

    在VC中使用XMLHTTP

    ### 在VC中使用XMLHTTP详解 #### 一、引言 在.NET框架中,通过C#语言使用XMLHTTP进行HTTP请求十分便捷。然而,在传统的Windows应用程序开发环境VC++ 6.0中,开发者可能需要更加深入地了解COM对象模型以及相关的...

    XMLHTTP参考(HTML格式)

    XMLHTTP是 AJAX(异步JavaScript和XML)技术中的核心组件,它允许Web应用程序在不刷新整个页面的情况下与服务器进行通信,实现数据的动态更新。这个参考手册,以HTML格式呈现,详细介绍了XMLHTTP对象的使用方法,...

    xmlhttp对象_VC中调用XMLHTTP对象访问

    ### XMLHTTP对象在VC中的应用 #### XMLHTTP对象简介 XMLHTTP对象是一种允许客户端脚本执行HTTP请求的对象,主要用于浏览器环境中实现异步通信。但在某些情况下,开发人员可能需要在非浏览器环境中(如桌面应用程序...

    易语言XMLHTTP方式访问网页

    7. **异步与同步**:XMLHTTP的异步模式允许程序在等待服务器响应的同时执行其他任务,提高了用户体验。然而,同步模式则会阻塞程序直到请求完成,适合于对实时性要求不高的场景。 总之,易语言XMLHTTP方式访问网页...

    xmlhttp.rar_xmlhttp

    XMLHTTP对象是微软ActiveX...总的来说,XMLHTTP对象是Web开发中的一个重要工具,它使得客户端能够与服务器进行实时交互,极大地提升了用户体验。学习和熟练掌握XMLHTTP对象的使用,对进行高效的Web应用开发至关重要。

Global site tag (gtag.js) - Google Analytics