您的位置:首页 > 其它

Ajax 从servlet中读取xml数据

2012-11-24 15:26 477 查看
文件: 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文件数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: