ajax返回的两种数据类型xml和json用法

用xml传单个数据

首先在servlet类里面写好要传的数据,Dog是模拟从数据库中提取的内容,

用response.getwrite().append()传回数据,要注意表头<?xml version=‘1.0‘?>不能写错,根是唯一的

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		//模拟从数据库中提取的信息
		Dog d = new Dog();
		d.setName("name");
		d.setZhuren("haha");
		d.setAge(2);
		d.setZhonglei("aaa");

		//用xml往回传
		response.getWriter().append("<?xml version=‘1.0‘?>");//表头
		response.getWriter().append("<dog>");//根,是唯一的
		response.getWriter().append("<name>"+d.getName()+"</name>");
		response.getWriter().append("<zhuren>"+d.getZhuren()+"</zhuren>");
		response.getWriter().append("<age>"+d.getAge()+"</age>");
		response.getWriter().append("<zhonglei>"+d.getZhonglei()+"</zhonglei>");
		response.getWriter().append("</dog>");

	}

在jsp页面

首先引用"js/jquery-1.11.1.min.js",在#d元素上写一个click事件,里面用ajax引擎处理数据,

url是接收数据的路径,datatype是返回什么类型的数据

?"xml": 返回 XML 文档,可用 jQuery 处理。?"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。?"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)?"json": 返回 JSON 数据 。?"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。?"text": 返回纯文本字符串
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$("#d").click(function(){
			$.ajax({
				url:"textdog",//从textdog的servlet类中接受数据
				data:{},
				type:"POST",
				dataType:"xml",//返回类型是xml
				success:function(aaa){
					//解析返回的aaa
					var n = $(aaa).find("name").text();
					var z = $(aaa).find("zhuren").text();
					var a = $(aaa).find("age").text();
					var zl =$(aaa).find("zhonglei").text();
					//在页面上把数据显示在通过#u找到的元素里面
					$("#u").append("<li>"+n+"</li>");
					$("#u").append("<li>"+z+"</li>");
					$("#u").append("<li>"+a+"</li>");
					$("#u").append("<li>"+zl+"</li>");
				}
			});
		});
	});

</script>

 演示结果:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用xml传集合,

首先在servlet类里面写好要传的数据,跟单个基本一样,注意一下根,因为有多个dog 所以要用一个更大的chongwu作为根, 把所有的dog包起来

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		//模拟从数据库提取的数据
		Dog d1 = new Dog();
		d1.setName("日天");
		d1.setZhuren("爸爸");
		d1.setAge(1);
		d1.setZhonglei("泰迪");
		Dog d2 = new Dog();
		d2.setName("拖拖");
		d2.setZhuren("坨坨粑粑");
		d2.setAge(2);
		d2.setZhonglei("金毛");
		Dog d3 = new Dog();
		d3.setName("凡凡");
		d3.setZhuren("凡凡爸爸");
		d3.setAge(3);
		d3.setZhonglei("哈士奇");
		//将d1d2d3放到list中
		ArrayList<Dog> list = new ArrayList<>();
		list.add(d1);
		list.add(d2);
		list.add(d3);
		//用xml把数据传到页面
		response.getWriter().append("<?xml version=‘1.0‘?>");//表头
		//根,这里因为不只一个dog,所以我们用一个更大的chongwu包起来
		response.getWriter().append("<chongwu>");
		//遍历
		for(Dog d : list){
			response.getWriter().append("<dog>");
			response.getWriter().append("<name>"+d.getName()+"</name>");
			response.getWriter().append("<zhuren>"+d.getZhuren()+"</zhuren>");
			response.getWriter().append("<age>"+d.getAge()+"</age>");
			response.getWriter().append("<zhonglei>"+d.getZhonglei()+"</zhonglei>");
			response.getWriter().append("</dog>");
		}
		response.getWriter().append("</chongwu>");
}

在jsp,同样先引入jar包

要先把所有的dog放到一个dogs里面,相当于一个数组,

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	$("#d").click(function(){
		$.ajax({
			url:"textdog1",
			data:{},
			type:"POST",
			dataType:"XML",
			success:function(hhh){
				//先把所有的dog放到dogs里面,相当于一个数组,不是一个对象
				var dogs = $(hhh).find("dog");
				//tb是找到的jquery对象
				var tb =$("#tb");
				//循环dogs
				for(var i =0;i<dogs.length;i++){
					var n = $(dogs).eq(i).find("name").text();
					var z = $(dogs).eq(i).find("zhuren").text();
					var a = $(dogs).eq(i).find("age").text();
					var lei =$(dogs).eq(i).find("zhonglei").text();
					//把信息拼接
					var tr = "<tr>";
					tr += "<td>"+n+"</td>";
					tr += "<td>"+z+"</td>";
					tr += "<td>"+a+"</td>";
					tr += "<td>"+lei+"</td>";
					tr += "</tr>";
					//把tr放到td中
					$(tb).append(tr);
				}
			}
		})
	})
})

</script>

 结果演示:

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用json传数据,首先导入json jar包,在servlet类里面写好要传的数据

先把dog放在jo这个json中,然后把jo放到obj这个json中,在页面中用jo中的key就可以直接取值了

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//编码格式
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");

		//
		Dog d = new Dog();
		d.setName("拖拖");
		d.setZhuren("李哈哈");
		d.setAge(2);
		d.setZhonglei("金毛");
		//把dog放到json中,用put赋值,key和value
		JSONObject jo = new JSONObject();
		jo.put("name",d.getName());
		jo.put("zhuren", d.getZhuren());
		jo.put("age", d.getAge());
		jo.put("zhonglei", d.getZhonglei());

		//obj这个json中再放jo这个json,obj里面放着jo
		JSONObject obj = new JSONObject();
		obj.put("dog", jo);
		response.getWriter().append(jo.toString());
	}

在jsp中,把返回数据类型改为json,然后把数据显示在页面中

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$("#d").click(function(){
			$.ajax({
				url:"textjson1",//从textjson1的servlet类中接受数据
				data:{},
				type:"POST",
				dataType:"JSON",//返回的数据类型是json
				success:function(aaa){
				//把数据显示在通过#u找到的元素里面
				 $("#u").append("<li>"+aaa.name+"</li>");
				 $("#u").append("<li>"+aaa.zhuren+"</li>");
				 $("#u").append("<li>"+aaa.age+"</li>");
				 $("#u").append("<li>"+aaa.zhonglei+"</li>");

				}
			});
		});
	});

</script>

 显示结果:

时间: 2024-12-26 18:06:23

ajax返回的两种数据类型xml和json用法的相关文章

GUID和INT两种数据类型做主键的比较

转自http://www.cnblogs.com/zhuqil/archive/2010/12/02/1894575.html 我们公司的数据库全部是使用GUID做主键的,很多人习惯使用int做主键.所以呢,这里总结一下,将两种数据类型做主键进行一个比较. 使用INT做主键的优点: 1.需要很小的数据存储空间,仅仅需要4 byte . 2.insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能. 3.index和Join 操作,int的性能最好. 4.

struts2中两种validation.xml的配置方式_百度文库

在struts中,根据配置的validation.xml文件进行页面输入项目的验证已经众所周知,本文介绍在struts2中两种validation.xml的配置方式.可以根据不同的需要进行不同的配置. 以下以login页面输入firstname,lastname,和age为例进行说明.struts.xml中,成功的话转向成功页面.不成功的话转回到原页面. 首先建立userbean文件.文件名:UserBean.java包:struts2.login.bean文件内容:package struts

jquery的ajax传递参数两种方式

<script type="text/javascript" src="js/jquery-1.7.js"></script> <script type="text/javascript"> $(function(){ $("#button").click(function(){ $.ajax({ url:'myServlet', type:'post', dataType:'json',

/*透明度设置的两种方式,以及hover的用法,fixed,(relative,absolute)这两个一起用*/

1 <!DOCTYPE html> 2 /*透明度设置的两种方式,以及hover的用法,fixed,(relative,absolute)这两个一起用*/ 3 <html lang="en"> 4 <head> 5 <meta charset="UTF-8"> 6 <title>Title</title> 7 <style> 8 .touch:hover .content{ 9 vi

.net开发环境的认识,控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印 两种数据类型,整形类型转换

首先感谢向立凯老师带我走进.net这个很好的软件开发程序.通过两天的学习在这个领域的了解也多了很多,让大家先了解一下c#语言 c#是一种全新且简单.安全.快捷面向对象的程序设计语言.是专门为.net应用开发的语言..net的开发都基于一个统一的开发环境 Visual Studio.net.下面我们来看看怎么在Visual Studio.net.下创建以新的项目: 1.打开 2.新建一个项目 通过执行文件-新建-项目菜单命令,会弹出一个新建项目对话框.在这个对话框中选择开发语言为c#,选择框架版本

有关Ajax实现的两种方法

首先我们来常见的Jquery式的Ajax写法,以及在java后台的取值 1 /** 2 *AJAX 3 */ 4 function showLastTime(){ 5 var facilityId = $('*[name="facilityId"]').val(); //页面取值 6 var mainteType = $("#mainteType").val(); 7 var mainteWorkNm = $("#mainteWorkNm").v

js的两种数据类型

js中的数据类型总体来说分为两种,他们分别是: 1 值类型(基本类型):数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined 2 引用类型(类):函数,对象,数组等 值类型理解:变量之间的互相赋值,是指开辟一块新的内存空间,将变量值赋给新变量保存到新开辟的内存里面:之后两个变量的值变动互不影响: 例如: var a=10;//开辟一块内存空间保存变量a的值“10”: var b=a;//给变量b开辟一块新的内存空间,将a的值“10”赋值

JavaScript两种数据类型的存储方式

JavaScript中数据类型的存储 区别: 两种类型的区别是:存储位置不同 基本数据类型 原始数据类型是直接存储在栈(stack)中的简单数据段.因为占据空间小.大小固定,属于被频繁使用数据,所以放入栈中存储. 引用数据类型 引用数据类型存储在堆(heap)中的对象,占据空间大.大小不固定.如果存储在栈中,将会影响程序运行的性能. JavaScript中的引用数据类型有: Array Object 引用数据类型是保存在堆内存中的,然后再栈内存中保存一个对堆内存中实际对象的引用(栈内存中保存了一

go两种数据类型的区别、数据类型和操作符、常量、变量声明

值类型和引用类型 1.值类型:变量直接存储值,内存通常在栈中分配. 基本数据类型int.float.bool.string以及数组和struct. 2.引用类型:变量存储的是一个地址,这个地址存储最终的值.内存通常在堆上分配.通过GC回收. 指针.slice(切片).map.chan(管道).interface等都是引用类型. 堆和栈的区别: 一.堆栈空间分配区别: 1.栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈: 2.堆(操作系统