ajax对服务器返回xml的处理过程
客户端:
<script type="text/javascript">
function getXml(){
var name = $("#input").val();
alert("into getXml()");
$.ajax({
type : "post",
url : "/ajaxReturnXmlServlet",
dataType : "XML",
data : {"name" : name},
error : function(){
alert("there is a error!");
},
success:function(xml){
$(xml).find("result").each(function(){
var name = "";
var age = "";
name = $(this).find("name").text();
age = $(this).find("age").text();
$("#member").append($("<tr><td>"+name
+"</td><td>" + age +"</td></tr>"));
}
);
}
});
}
</script>
服务器端:
public class AjaxReturnXmlServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name") == null ? "" : request.getParameter("name");
System.out.println(name);
response.setContentType("text/xml;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
StringBuffer returnXmlBuff = new StringBuffer();
returnXmlBuff.append("<?xml version=\"1.0\" encoding=\"utf-8\"?><root>");
returnXmlBuff.append("<result id=\"one\">");
returnXmlBuff.append("<name>b</name>");
returnXmlBuff.append("<age>11</age></result>");
returnXmlBuff.append("<result id=\"two\">");
returnXmlBuff.append("<name>bb</name>");
returnXmlBuff.append("<age>22</age></result>");
returnXmlBuff.append("<result id=\"three\">");
returnXmlBuff.append("<name>cc</name>");
returnXmlBuff.append("<age>33</age></result>");
returnXmlBuff.append("<result id=\"fore\">");
returnXmlBuff.append("<name>dd</name>");
returnXmlBuff.append("<age>44</age></result>");
returnXmlBuff.append("</root>");
System.out.println(returnXmlBuff.toString());
out.print(returnXmlBuff.toString());
out.flush();
out.close();
}
}
1、继承HttpServlet,需要添加servlet.jar包
2、serialVersionUID默认是1L,实现反序列化
3、在server.xml中,如果path="/"访问项目需要添加端口号和项目名,则页面中引用的jQuery的js引用不到,所以要使用不加项目名的访问方式
4、在Java代码的双引号里(""),如果字符串中需要有双引号这个字符,则在每一个"的前面,添加‘\’来转意
5、xml格式要拼接正确
web.xml:
<servlet>
<servlet-name>AjaxReturnXmlServlet</servlet-name>
<servlet-class>com.oct.servlet.AjaxReturnXmlServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AjaxReturnXmlServlet</servlet-name>
<url-pattern>/ajaxReturnXmlServlet</url-pattern>
</servlet-mapping>
ajax对服务器返回xml的处理过程的更多相关文章
- 【04】AJAX接收服务器返回的数据
AJAX接收服务器返回的数据 readyState 和 status 属性 readyState 属性保存有 XMLHttpRequest 对象的交互状态,从 0 到 4 变化: 0 :未初始化(还没 ...
- Ajax接收服务器返回的信息response
Ajax可以向服务器发起请求,有去的方式,那么久必然可疑返回. 服务器返回的信息也可以通过Ajax接收. Ajax共有5种状态: 1.创建对象,没有调用open方法 2.对象发起请求http,已经调用 ...
- ajax 获取服务器返回的XML字符串
前台 解析失败不会抛出任何异常, 只会返回一个给定的错误文档 let l = console.log let http = ajanuw.create({ uri: 'http://localhost ...
- JS请求服务器,并返回信息,请求过程中不需要跳转页面
js请求服务器,并返回信息,请求过程中不需要跳转页面 这个可以通过jQuery框架轻松实现,jQuery中包含多种ajax的请求方式,详细可以参考下对应 的API. 你上面定义的按钮类型是submit ...
- Mui.ajax请求服务器正确返回json数据格式
ajax: mui.ajax('http://server-name/login.php',{ data:{ username:'username', password:'password' }, d ...
- datatables 服务器返回数据后的处理-表格数据属性的操作方法(ajax.dataSrc)
http://dt.thxopen.com/reference/option/ajax.dataSrc.html http://datatables.net/reference/option/ajax ...
- Ajax返回xml类型数据
ajax可以返回文本类型数据和xml类型数据,xml是计算机通用语言 可以使用js解析返回xml类型数据的dom对象 前端页面 <!doctype html> <html lang= ...
- 用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题
最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的 ...
- [转]jquery异步ajax与服务器通信过程中如何通过then方法链式传递多层数据
原文:https://www.cnblogs.com/fullstack-yang/p/6115983.html doSubmit: function(){ var dtd = $.Deferred( ...
随机推荐
- linux ab压力测试工具及ab命令详解
原文链接:https://blog.csdn.net/qq_27517377/article/details/78794409 yum -y install httpd-tools ab -v 查看a ...
- Elasticsearch-搜索推荐
对于es中搜索推荐的功能的实现: 1.使用match_phrase_prefix来实现search-time搜索推荐,原理根match_phrase类似,唯一的区别是把最后一个term作为前缀去搜索, ...
- SAX,功能强大的 API
https://www.ibm.com/developerworks/cn/xml/x-saxapi/ SAX,功能强大的 API 在摘自 XML by Example 的本篇预览中比较了 DOM 和 ...
- 缓存行和cpu缓存实例
并发框架Disruptor译文 剖析Disruptor:为什么会这么快?(一)锁的缺点 剖析Disruptor:为什么会这么快?(二)神奇的缓存行填充 剖析Disruptor:为什么会这么快?(三)伪 ...
- 纯css实现不固定行数的文本在一个容器内垂直居中
项目中要实现的效果如图: html代码 及 css代码: <!DOCTYPE html> <html> <head> <meta charset=" ...
- 【codeforces 24D】损坏的机器人
题目大意:有一只坏了的机器人站在一个n∗m的网格里,初始位置在(x,y).现在每个单位时间内它会随机选左右下三个方向走,如果它随机的方向会走出网格就不会往这个方向走.当然这个机器人也可能原地停留一个单 ...
- WinForm—串口通讯
ialPort(串行端口资源) 常用属性: BaudRate 此串行端口上要使用的波特率 DataBits 每发送/接收一个字节的数据位数目 DtrEnable 在通讯过程中是否启用数据终端就绪(St ...
- HTML页面的重绘(repaint)和重流(reflow)
重流(Reflow)是指布局引擎为frame计算图形的过程. frame是一个矩形,拥有宽高和相对父容器的偏移.frame用来显示盒模型(content model), 但一个content mode ...
- javascript中的浅拷贝和深拷贝 分类: JavaScript 2015-05-07 15:29 831人阅读 评论(1) 收藏
1.js对象浅拷贝 简单的赋值就是浅拷贝.因为对象和数组在赋值的时候都是引用传递.赋值的时候只是传递一个指针. 看下面的实例代码: var a = [1,2,3]; var b =a ; var te ...
- CSS3中的pointer-events
今天做项目中偶然误把元素加上了pointer-events属性,结果导致后来在js中给该元素加点击事件不能用,检查了半天才发现是这个属性的问题.之前没有好好研究,于是决定仔细研究一下. 一.定义及语法 ...