package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class CheckXml */ public class CheckXml extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public CheckXml() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); // /*response.setHeader("pragma", "no-cache"); response.setHeader("cache-control", "no-cache"); response.setDateHeader("expires", 0);*/ response.setContentType("text/xml;charset=utf-8"); StringBuffer buff = new StringBuffer(); buff.append("<?xml version='1.0' encoding='utf-8'?>"); buff.append("<message>"); buff.append(new Date().getTime()); buff.append("</message>"); out.print(buff); System.out.println(buff); out.flush(); out.close(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } 2.客户端代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>xml格式传输</title> <mce:script type="text/javascript"><!-- function getServerTime(){ //发送请求到服务器 //创建XMLHttpRest组件 var xmlHttpRequest; //针对Firefox Opera Mozillar ie7 ie8 alert(window.XMLHttpRequest); if(window.XMLHttpRequest){ xmlHttpRequest = new XMLHttpRequest(); //针对某些浏览器特定版本的mozillar浏览器bug修正 if(xmlHttpRequest.overrideMimeType){ xmlHttpRequest.overrideMimeType("text/xml"); } }else if(window.ActiveXObject){ //ie5 ie5.5 ie6(ie低版本) var activeNames = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i = 0;i<activeNames.length;i++){ try{ xmlHttpRequest = new ActiveXObject(activeNames[i]); break; }catch(e){ } } } //设置请求 //第一个参数表示是GET 还是Post //第二个参数表示请求路径、 //第3个参数表示同步还是异步请求 //①采用GET请求 xmlHttpRequest.open("GET","CheckXml?uname=xiaowei&t="+new Date().valueOf(),true); //发送请求 xmlHttpRequest.send(null); //②采用POST请求 /*xmlHttpRequest.open("POST","checkXml",true); //POST需要自己设置请求头 xmlHttpRequest.open("post", "checkXml", true); xmlHttpRequest.setRequestHeader("cache-control", "no-cache"); //post请求再加一句 xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlHttpRequest.send("uname=1234");*/ //设置回调函数 xmlHttpRequest.onreadystatechange(function callme(){ if(xmlHttpRequest.readyState == 4){//0 未初始化,2=open成功调用 3,交互中,4,完成 if(xmlHttpRequest.status == 200){ alert("回调函数"+xmlHttpRequest.responseXML.getElementsByTagName("message").item(0).text); }else{ alert("错误................."); } } }); } //如果返回的是标准的XML(有<?xml version="1.0" encoding="UTF-8"?>, //并且ContentType = "text/xml"),则直接操作xmlhttp.responseXML应该是可以的, //如果不是标准的XML.则返回的信息实际上是以文本的方式表示的, //必须从xmlhttp.responseText中取得数据,方式如下: function getXMLDoc(xmlText){ if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.onreadystatechange = function() { //if(xmlDoc.readyState == 4) doAction(); } xmlDoc.loadXML(xmlText); } else if (document.implementation && document.implementation.createDocument) { xmlDoc = document.implementation.createDocument('', '', null); //xmlDoc.οnlοad=doAction(); xmlDoc.loadXML(xmlText); } else return null; return xmlDoc; } // --></mce:script> </head> <body> <a href="javascript:getServerTime();" mce_href="javascript:getServerTime();">获取系统时间</a> <span id='time'></span> </body> </html>