使用XMLHTTP

使用XMLHTTP获取XML文档并生成XMLDOM

MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。

使用XMLHTTP获取XML文档并生成XMLDOM

MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。
创建XMLHTTP对象的语句如下:

var Http = new ActiveXObject("Microsoft.XMLHTTP");

对象创建后调用Open方法对Request对象进行初始化,语法格式为:
 
Http .open (http-method, url, async, userID, password);

Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示:
 
http-method:  HTTP的通信方式,比如GET或是 POST
url:   接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序
async:  一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
userID:  用户ID,用于服务器身份验证
password: 用户密码,用于服务器身份验证

XMLHTTP对象的Send方法

用Open方法对Request对象进行初始化后,调用Send方法发送请求:

Http .send()

Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:
值 说明

0 Response对象已经创建,但XML文档上载过程尚未结束
1 XML文档已经装载完毕
2 XML文档已经装载完毕,正在处理中
3 部分XML文档已经解析
4 文档已经解析完毕,客户端可以接受返回消息

客户机处理响应信息
客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的:

responseTxt:将返回消息作为文本字符串;
responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
responseStream:将返回消息视为Stream对象

------一个很简单的javascript例子,将获取XML文本生成字XMLDOM对象---------------

var Http = new ActiveXObject("Microsoft.XMLHTTP");
var url='getItemXml.jsp?id=1';//该页从数据库里询数并生成返回规范的xml文本
Http.open("POST",url,false);
Http.send();
var xmldoc=new ActiveXObject("MSXML.DOMDocument");
xmldoc.async=false;
xmldoc.loadXML(Http.responseText);

我想利用xmlhttp实现 以下功能:
客户端通过xmlhttp向servlet或jsp发送请求,并发送一个sql语句,然后由servlet接收并执行该sql语句,并产生一个结果集(resultset),并将该结果集转换成XML ( 一定要是XML的形式 )然后返回给客户端,由客户端的javascript进行解析,将数据显示在网页上。整个过程中,客户端的页面是不刷新的。
我对xmlhttp和xml不熟悉,所以麻烦能给出详细的代码,谢谢!!!!!
如果问题解决了,分不够再加啊

给你个例子,我刚测试通过:
客户端:
<html>
<head>
<script>
function Query()
{
  var xmlDoc, OrderNode, poster, responseRoot;
  xmlDoc=new ActiveXObject("Msxml.DOMDocument");
  xmlDoc.loadXML("<?xml version=/"1.0/"?>"+
                    "<test>"+
                       "<sql>select name from test</sql>"+
                    "</test>");
  poster=new ActiveXObject("Microsoft.XMLHTTP");
  poster.open("POST","http://localhost:8088/XMLHTTPDemo/XMLServlet",false);
  poster.send(xmlDoc);
  if(poster.responseXML!=null)
  {
for(var i=0;i<poster.responseXML.documentElement.childNodes.length;i++)
{
document.writeln(poster.responseXML.documentElement.childNodes(i).text);
}
  }
  else
alert("error!");
}
</script>
</head>
<body>
<input type="Button" value="Test" οnclick="Query();">
</body>
</html>
服务端(servelet)
package tt.com;
import java.io.*;
import java.sql.*;
import javax.xml.parsers.*;

import org.w3c.dom.*;

import javax.servlet.ServletException;
import javax.servlet.http.*;
public class XMLServlet extends HttpServlet
{

@Override
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException
{
try
{
InputStream is=arg0.getInputStream();
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse(is);
Element root=doc.getDocumentElement();
String sql=root.getFirstChild().getTextContent();
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://XIAOHUASZ//XIAOHUASZ;DatabaseName=XHBookShop";
String user="xiaohua";
String password="";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
arg1.setContentType("text/xml");
PrintWriter out=arg1.getWriter();
out.println("<?xml version=/"1.0/"?><test>");
while(rs.next())
{
String s1=rs.getString(1);
out.println("<name>"+s1+"</name>");
}
out.println("</test>");
rs.close();
stmt.close();
conn.close();
out.close();
}
catch(Exception e){e.printStackTrace();}
}

}

xmlhttp的实际使用相关推荐

  1. ajax send上传出错,Ajax在xmlhttp.send上出错

    我正在尝试使用AJAX来更新数据库列.我正确地创建了变量并使用Javascript函数xmlhttp.open和xmlhttp.send将数据发送到我的PHP文件,该文件将数据添加到数据库行. 我做了 ...

  2. Javascript+xmlhttp调用Webservice

    1.  创建webservice,为了免于落俗我稍稍修改了创建webserice的默认webmethod.^_^ using System; using System.Web; using Syste ...

  3. Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)

    51ajax.comAJAX论坛 用XMLHTTP Post  Form时的表单乱码有两方面的原因--Post表单数据时中文乱码:服务器Response被XMLHTTP不正确编码引起的乱码.换句话说, ...

  4. AJAX技术其实就是多年前我就使用过的XMLHTTP

    AJAX技术其实就是多年前我就使用过的XMLHTTP: 1)<BODY οnlοad='setInterval("getDaytime()",(GetCookie(" ...

  5. Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest

    客户端调用XMLHTTP的过程很简单,只有5个步骤: 1.创建XMLHTTP对象 2.打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等. 客户端通过Open命令打开与服务端的服 ...

  6. 微软的JavaScript,Post的实例(XMLHTTP)

    下面这个functioon是我分析MSN的一个网址截取的,对使用javascript Post数据的时候有用,以前我都是用笨办法在页面上放个隐藏的form然后submit,现在可以直接用使用post了 ...

  7. XMLHTTP使用具体解释

    XMLHTTP对象是Microsoft的MSXML开发包中带的一个用HTTP,XML协议訪问web资源的对象. 从MSXML3.0開始出现. 它在AJAX技术中主要用来从其它网络资源获取信息,然后由j ...

  8. XMLHTTP中setRequestHeader参数问题

    新加:设置编码方法 setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset ...

  9. 用XMLHTTP获取动态页生成的HTML内容

    用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成html文件.这句话是在蓝色理想上看到的,对XMLHTTP吟清还 ...

  10. 使用xmlhttp结合asp,实现网页的异步调用_asp实例

    通过xmlHttp和ASP的结合,我们可以轻松完成网页的异步调用. 代码如下: 1.新建Display.asp(这是前台显示页面) 注意xmlhttp.readyState的4个属性 1:LOADIN ...

最新文章

  1. 重装windows2003遇到的老问题:0X0000007B和显卡驱动安装不上。
  2. GraphPad Prism 9.3 更新内容,支持Monterey和Win11
  3. redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法...
  4. Django框架下报的版本问题
  5. bootstrap中如何使input中的小图标获得点击事件
  6. cocos2d for android,cocos2d-x for android
  7. 你的名字比我生命更重要
  8. re模块和正则表达式
  9. pin与抓握手包破解wifi密码
  10. 乐心健康php,《乐心健康》修改步数网页【获取方法】入口
  11. SEO人员,如何搭建你的网站基础框架?
  12. 视频教程-C语言编程初级入门-C/C++
  13. Range Coder编码比特流
  14. 途家民宿VS木鸟民宿:民宿APP功能体验
  15. html 京东购物车样式,购物车css样式效果
  16. jsp页面打开为空白页
  17. 02C++对C的增强
  18. 《程序员修炼之道:从小工到专家》The Pragmatic Programmer: From Journey to Master
  19. 农村中学扩建工程全套CAD施工图哪里找?
  20. qq批量登录软件_把微信PC版越甩越远:QQ电脑版这些新功能太良心

热门文章

  1. 零基础小白想学Python爬虫,但是不理解原理?5分钟带你理顺思路
  2. 游戏设计艺术 第2版 第30章 读书笔记
  3. 满城尽带黄金“假”(二)——断臂殇为谁而鸣
  4. Typora保存图片,上传图片,分享图片,图片丢失
  5. 数学之美读书感悟01
  6. Java毕设项目-医药信息管理系统
  7. Silvaco学习笔记(九)毕设相关
  8. Excel数据分析常用函数④——日期函数(now,today,datedif,weekday,weeknum,text)
  9. 分布式与云化的主要区别
  10. Win10更新、重装后 触摸板无法关闭