Ajax 引擎 用XML传输数据:

1.传输单个对象

新建一个setvlet,在doGet方法中实现如下代码:

                //防止中文乱码
                request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		//模拟从数据库查询数据
		Dog d = new Dog();
		d.setName("阿黄");
		d.setAge(3);
		d.setZhuren("明珠");
		d.setPinzhong("金毛");
		//传输到ajax引擎
		response.getWriter().append("<?xml version='1.0' ?>");
		response.getWriter().append("<dog>");
		response.getWriter().append("<name>"+d.getName()+"</name>");
		response.getWriter().append("<age>"+d.getAge()+"</age>");
		response.getWriter().append("<zhuren>"+d.getZhuren()+"</zhuren>");
		response.getWriter().append("<pinzhong>"+d.getPinzhong()+"</pinzhong>");
		response.getWriter().append("</dog>");    

然后新建一个html,在head头里边引用ajax引擎,代码如下:

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>  //导包
<script type="text/javascript">
$(document).ready(function(){
	$("#ss").click(function(){
		
		$.ajax({
			url:"dangedog",    //我们新建的select
			data:{},
			type:"POST",    
			dataType:"XML",
			success:function(httpdata){
                //接收数据 var n = $(httpdata).find("name").text(); var a = $(httpdata).find("age").text(); var z = $(httpdata).find("zhuren").text(); var p = $(httpdata).find("pinzhong").text();   //界面显示 var ul = "<ul>"; ul += "<li>" +n+"</li>"; ul += "<li>" +a+"</li>"; ul += "<li>" +z+"</li>"; ul += "<li>" +p+"</li>"; ul += "</ul>"; $("#div").append(ul); } }); }); }); </script>

body里边的代码如下

<span id="ss">点击有惊喜</span>
<div id="div">

</div>

运行程序,当点击span这一标签时,结果如下:  

2.传输集合时

同样的方法,新建一个servlet,在doGet方法中实现如下代码

                //防止中文乱码
                request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		//模拟从数据库中获取数据
                Dog d1 = new Dog();
		d1.setName("阿黄");
		d1.setAge(3);
		d1.setZhuren("明珠");
		d1.setPinzhong("金毛");
		Dog d2 = new Dog();
		d2.setName("小明");
		d2.setAge(2);
		d2.setZhuren("小明");
		d2.setPinzhong("哈士奇");
		Dog d3 = new Dog();
		d3.setName("二萌");
		d3.setAge(5);
		d3.setZhuren("二蒙");
		d3.setPinzhong("藏獒");
		//传输到ajax引擎
		ArrayList<Dog> list = new ArrayList<Dog>();
		list.add(d1);
		list.add(d2);
		list.add(d3);
		response.getWriter().append("<?xml version='1.0' ?>");
		response.getWriter().append("<old>");
		for(Dog d : list){
			response.getWriter().append("<dog>");
			response.getWriter().append("<name>"+d.getName()+"</name>");
			response.getWriter().append("<age>"+d.getAge()+"</age>");
			response.getWriter().append("<zhuren>"+d.getZhuren()+"</zhuren>");
			response.getWriter().append("<pinzhong>"+d.getPinzhong()+"</pinzhong>");
			response.getWriter().append("</dog>");
		}		
		response.getWriter().append("</old>");    

然后新建一个html文件,在head头里边引用ajax引擎,并导包,代码如下:

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>            //导包
<script type="text/javascript">
$(document).ready(function(){
	$("#ss").click(function(){
		$.ajax({
			url:"jihedog",          //我们新建的servlet文件的路径
			data:{},
			type:"POST",
			dataType:"XML",         //用XML格式获取数据
			success:function(httpdata){
				var d = $(httpdata).find("dog");
			     //把接收到的数据强制转换成jquery类型,用jquery的find方法查询我们想要的数据
				for(var i=0 ; i<d.length;i++){
					var n = $(d).eq(i).find("name").text();
					var a = $(d).eq(i).find("age").text();
					var z = $(d).eq(i).find("zhuren").text();
					var p = $(d).eq(i).find("pinzhong").text();
					//将数据显示出来
					var tr = "<tr>";
					tr += "<td>" + n + "</td>";
					tr += "<td>" + a + "</td>";
					tr += "<td>" + z + "</td>";
					tr += "<td>" + p + "</td>";
					tr += "</tr>";
					
					$("#tb").append(tr);
				}
			}	
		})
	});		
});
</script>

在body中的代码

<span id="ss">点击有惊喜</span>
<table id="tb">


</table>

运行程序,点击span,结果如下:

Ajax引擎 用JSON传输数据:

1.用JSON传输单个对象

和用XML传输数据方法类似,同样是新建一个servlet,在doGet方法中实现如下代码:

		//防止中文乱码
         request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
         //模拟获取数据库数据 Dog d = new Dog(); d.setName("阿黄"); d.setAge(3); d.setZhuren("明珠"); d.setPinzhong("金毛"); //用JSON将数据封装,并传输到Ajax引擎 JSONObject obj = new JSONObject(); obj.put("name", d.getName()); obj.put("age", d.getAge()); obj.put("zhuren", d.getZhuren()); obj.put("pinzhong", d.getPinzhong()); response.getWriter().append(obj.toString());

然后新建一个html或者jsp文件,在head头中导包并引用Ajax引擎,代码如下:

<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	$("#ss").click(function(){
		$.ajax({
			url:"jsondog",
			data:{},
			type:"POST",
			dataType:"JSON",
			success:function(httpdata){
				//接收到的就是一个对象可以直接引用它的属性和方法
				$("#ul").append("<li>"+httpdata.name+"</li>");
				$("#ul").append("<li>"+httpdata.age+"</li>");
				$("#ul").append("<li>"+httpdata.zhuren+"</li>");
				$("#ul").append("<li>"+httpdata.pinzhong+"</li>");	
			}	
		})
	})
})
</script>

在body中的代码如下:

<span id="ss">点击有惊喜</span>
<ul id="ul">


</ul>

运行程序,点击span,结果如下:

  

 

从方法上来看,用JSON更加方便,无论是从servlet传输到ajax,还是ajax接收数据,都更加的灵活。

posted on 2017-03-01 15:41  云破月丶  阅读(301)  评论(0编辑  收藏  举报