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接收数据,都更加的灵活。
浙公网安备 33010602011771号