ajax中如何读取前台传到后台的xml
2012-10-27 09:43
543 查看
//创建xmlrequest对象
function newxmlreq(){ var xmlreq=false; if(window.XMLHttpRequest){ xmlreq=new XMLHttpRequest(); }else if(window.ActrveXObject){ try { xmlreq=new ActrveXObject("Msxml.XMLHTTP"); }catch(e1){ try{ xmlreq=new ActrveXObject("Microsoft.XMLHTTP") }catch (e2){ xmlreq=false; } } } return xmlreq; }
//前台代码 把xml转换成字符串传到后台
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>往后台发送xml</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form> 收件人:<input type="text" id="name" name="name"/><br/> 地址:<input type="text" id="ad"/><br/> 邮编:<input type="text" id="yb"><br/> <input type="button" value ="提交" onclick="xmltoh()"/><br/> <span id="sd"></span> </form> <script type="text/javascript" src="js/newXmlReq.js"></script> <script type="text/javascript"> function toxml(){ var name=document.getElementById("name").value; var ad=document.getElementById("ad").value; var yb=document.getElementById("yb").value; var xml=null; if(name!=""&&ad!=""&&yb!=""){ var xml="<file>"+"<name>"+name+"</name>"+"<ad>"+ad+"</ad>"+"<yb>"+yb+"</yb>"+"</file>"; }else{ alert("输入值不能为空"); } return xml; } function xmltoh(){ var xml=toxml(); var xmlreq=newxmlreq(); xmlreq.onreadystatechange=function (){ if(xmlreq.readyState==4){ if (xmlreq.status==200){ var text=xmlreq.responseText; var sd=document.getElementById("sd"); sd.innerHTML=text; } } } xmlreq.open("post","XmlTOHServlet",true); xmlreq.setRequestHeader("Content-Type","text/xml"); xmlreq.send(xml); } </script> </body> </html>
//主要通过流来读取出数据 通过dom工厂创建dom对象 来解析xml字符串
package com.ajax.servlet; import java.io.BufferedReader; import java.io.ByteArrayInputStream; 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.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.xml.sax.SAXException; public class XmlTOHServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); StringBuffer bxml = new StringBuffer(); String line = null; //从获得请求中的数据流 try { BufferedReader reader = request.getReader(); while((line = reader.readLine()) != null) { bxml.append(line); } } catch(Exception e) { System.out.println(e.toString()); } String xml =bxml.toString(); Document xmlDoc = null; try { xmlDoc = DocumentBuilderFactory.newInstance() .newDocumentBuilder() .parse(new ByteArrayInputStream(xml.getBytes())); } catch(ParserConfigurationException e) { System.out.println(e.getStackTrace()); } catch(SAXException e) { System.out.println( e); } String uname = xmlDoc.getElementsByTagName("name").item(0).getFirstChild().getNodeValue(); String city = xmlDoc.getElementsByTagName("ad").item(0).getFirstChild().getNodeValue(); String street = xmlDoc.getElementsByTagName("yb").item(0).getFirstChild().getNodeValue(); String responseText = "您发送给"+uname+"地址是"+city+"邮编是"+street+"邮件,还需要一天到达目的地!"; response.setContentType("text/xml; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); out.println(responseText); out.close(); } }
相关文章推荐
- 如何通过ajax将数据从前台传到后台
- ajax 如何 读取 xml 文档
- 学习如何修改echarts使其显示数据为后台传到前台的数据
- mvc5 webap2 前台如何使用 ajax 请求后台API
- ExtJs4.1读取后台XML数据并显示在前台的Ext.grid.Panel,并额外添加一列动作列
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- AJAX XML 实例 下面的例子将演示网页如何使用 AJAX 来读取来自 XML 文件的信息:
- C#ASP.MVC后台怎么取前台AJAX传到后台的普通数组。
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- 如何把日期从前台传到后台
- 通过ajax来读取xml里面的数据,以及查询好数据如何写入xml里去 来供ajax读取
- 前台数据通过AJAX传到JAVA后台并存入到txt文件中
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- EXT中在前台使用ajax将后台model类封装为json格式传到前台,并且解析出model中属性
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- jQuery+ajax从数据库取值和和绑定前台html控件上,然后再通过ajax把值传到后台,让后台写入到数据库
- 后台返回一个string类型的json格式数据,前台js如何读取?
- ajax异步读取后台传递回的下拉选项的值