AJAX第二步:AJAX接收返回类型为text/XML的数据

来源:互联网 发布:java io 简介总结 编辑:程序博客网 时间:2024/05/21 13:58

有时候 我们会用ajax接收XML类型的数据,而ajax中也有响应的方法responseMXL.简单写了一段从servlet发送XML类型的代码以及jsp页面中处理的方法。

servlet代码:

package cn.sdut.ajaxdemo;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/AjaxDemo_XML")public class AjaxDemo_XML extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置返回类型text/xml 和编码格式 使中文不乱码response.setContentType("text/xml;charset=utf-8");//设置无缓存response.setHeader("Cache-Control", "no-cache");//获得请求消息String cmd = request.getParameter("cmd");System.out.println(cmd);//响应String xml_star ="<CATALOG>";String xml_content = "<CD>"+ "<TITLE>Empire Burlesque</TITLE>"+ "<ARTIST>Bob Dylan</ARTIST>"+ "</CD>"+ "<CD>"+ "<TITLE>Hide your heart</TITLE>"+ "<ARTIST>Bonnie Tyler</ARTIST>"+ "</CD>";String xml_end = "</CATALOG>";String xml = xml_star+xml_content+xml_end;System.out.println(xml);response.getWriter().write(xml);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/xml;charset=utf-8");   this.doGet(request, response);}}
jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!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>简易ajax 返回类型xml</title></head><body><input type="button" onclick="ajaxGETMethod()" value="ajax1点击"><div id="ajax1">11xml</div><input type="button" onclick="ajaxPOSTMethod()" value="ajax2点击"><div id="ajax2">11xml</div></body><!--  ajax进行局部·刷新 --><script type="text/javascript">function ajaxGETMethod(){var xmlhttp;if(window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}else{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function() {if(xmlhttp.readyState==4 && xmlhttp.status==200){//alert('2');var doc =xmlhttp.responseXML.documentElement.getElementsByTagName("CD");     for(var i = 0;i<doc.length;i++){var v = doc[i].getElementsByTagName("TITLE");{var value = v[0].firstChild.nodeValue;alert(value);} v = doc[i].getElementsByTagName("ARTIST"); { var value = v[0].firstChild.nodeValue; document.getElementById("ajax1").innerHTML += value; }}}}xmlhttp.open("get","${pageContext.request.contextPath}/AjaxDemo_XML?cmd=ajax1您好",true);xmlhttp.send(); }</script><script type="text/javascript">function ajaxPOSTMethod(){var xmlhttp;if(window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}else{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function() {if(xmlhttp.readyState==4 && xmlhttp.status==200){
               //这里用responseXML接收var doc = xmlhttp.responseXML.documentElement.getElementsByTagName("CD");for(var i = 0;i<doc.length;i++){var v = doc[i].getElementsByTagName("TITLE");{ var value = v[0].firstChild.nodeValue;document.getElementById("ajax2").innerHTML += value;}v =doc[i].getElementsByTagName("ARTIST");{var value = v[0].firstChild.nodeValue;alert(value);}}}}xmlhttp.open("post","${pageContext.request.contextPath}/AjaxDemo_XML",true);xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xmlhttp.send("cmd=ajax2您好"); }</script></html>



阅读全文
0 0
原创粉丝点击