文件: XMLservlet.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class XMLServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String CONTENT_TYPE = "text/xml; charset=gb2312";
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer("<address>");
sb.append("<type_name>AAhl</type_name>");
sb.append("<type_name>BB</type_name>");
sb.append("<type_name>CC</type_name>");
sb.append("<type_name>DD</type_name>");
sb.append("</address>");
out.write(sb.toString());
out.close();
}
}
///
读取XMLservlet.java发送的 xml文件的 myAjax.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head>
<script language="javascript">
var xmlHttp;
function createXMLHttp(){
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//到这里都是为了获取得到XMLHttpRequest对象
function getInfo(){
createXMLHttp();
xmlHttp.open("POST", "servlet/XMLServlet"); //建立到服务器的数据请求,这里请求一个名为“allarea.xml”文件
xmlHttp.onreadystatechange = getCityCallback ; //一个回调函数
xmlHttp.send(null); //想服务器发送的数据
}
function getCityCallback(){
if(xmlHttp.readyState == 4 ){
if(xmlHttp.status == 200){ //这里的俩个if语句是为了判断 请求是否已经完成
var allareaHLp = xmlHttp.responseText;
alert(allareaHLp);
var type = xmlHttp.responseXML.getElementsByTagName("type_name");
alert("---------");
var str=new Array();
for(var i=0;i<type.length;i++){
str[i]=type[i].firstChild.data;
alert(str[i]);
document.all['td'].innerHTML+=str[i]+"<BR>";
}
}
}
}
</script>
</head>
<body onload = "getInfo()">
<table width="80%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="td">
</td>
</tr>
</table>
</body>
</html>
关键是在servlet中生成 xml文件数据