JSP使用XMLHTTP进行数据交互

JSP使用XMLHTTP进行数据交互

1.客户端提交请求

Domain = "test.com"

sXml = "<?xml version=""1.0"" encoding=""gb2312"" ?>" &_

"<Package>" &_

"<Domain>" & Domain & "</Domain>" &_

"</Package>"

Set oD = Server.CreateObject("Microsoft.XMLHTTP")

oD.Open "Post", "http://Server/Domain_Check.jsp", False

oD.Send(sXml)

If oD.Status = 200 Then

Result = oD.responseText

Set o = Server.CreateObject("Microsoft.XMLDOM")

o.LoadXML(Result)

Domain = CInt(o.selectSingleNode("//Result").text)

Response.Write Domain

Set o = Nothing

Set oD = Nothing

End If

2.服务器端解析数据包

<%@ page import="java.util.*" %>

<%@ page import="java.text.*" %>

<%@ page import="java.io.*" %>

<%@ page import="org.w3c.dom.*" %>

<%@ page import="javax.xml.parsers.*" %>

<%@ page contentType="text/html; charset=gbk" %>

<%

//获得数据包

request.setCharacterEncoding("UTF-8");

BufferedReader in = request.getReader();

String line;

String xmlRequest = "";

String domain_name = "";

while ((line = in.readLine()) != null)

{

//构造数据包

xmlRequest = xmlRequest + line + "\n";

}

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder db = factory.newDocumentBuilder();

ByteArrayInputStream stream = new ByteArrayInputStream(xmlRequest.getBytes("UTF-8"));

Document doc = db.parse(stream);

Element root = doc.getDocumentElement();

NodeList Domain = root.getElementsByTagName("Domain");

if (Domain.getLength() == 1) {

Element e = (Element) Domain.item(0);

domain_name = (String) e.getFirstChild().getNodeValue();

}

//返回数据

out.println("<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n");

out.println("<Package>\n");

out.println("\t<Result>" + domain_name + "</Result>\n");

out.println("</Package>");

%>

3.得到返回结果

test.com