Servlet返回的数据js解析问题

Servlet返回的数据js解析问题javascript

方式1:Jsonhtml

接收函数:ajax.responseText后面没括号java

其实在以前所说的ajax中还遗留了一些问题就是,Servlet返回给js的数据是如何被js解析的呢?ajax

以前只是发送了一句话,因此他就以html的格式进行解析就成功了,可是在实际中咱们每每发送的数据是存在一个对象当中的又或者是一组对象当中的,咱们应该如何发送呢?json

json:js当中有一种有一种结构就是json,说白了就是键值对。jsp

例以下面的:函数

{ "firstName":"John" , "lastName":"Doe" }

咱们能够在Servlet将属性与值进行拼接,获得json格式的字符串,这样js中就能以这样的格式进行数据的解析了。学习

相似于下面这样:测试

resp.getWriter().write("{name:"+u.getHeroName()+ 
                                ",lifenum:"+u.getLifeNum()+
                                ",type:"+u.getType()+
                                ",desc:"+u.getDesc() +"}")

可是对于懒癌来讲这样的方式是极不友好的,因此就要说到强大的jar包了。ui

有一款名为gson的jar包能够帮你完成拼接的工做:https://pan.baidu.com/s/1-_lhLxGspqCis5CAPKt-GA

对于使用就是你直接将对象丢进去就好,它会自动帮你转为json格式。

 

而后又有问题来了,json的数据给js有什么用,咱们通常操纵的是对象呀!

别慌,eval帮你解决

 

 

 方式2:XML进行解析

接收函数:ajax.responseXML后面没括号

能够将用户数据以Xml进行发送而后js也以xml格式解析

用户数据的xml能够写在jsp中,而后js的跳转(open函数)就不用跳转到Servlet中而是jsp中找用户数据

用户数据jsp:

 

<%@ page language="java" contentType="text/xml; charset=utf-8"%>
<user>
    <name>李四</name>
    <pwd>123</pwd>
</user>

 

ajax接收数据jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
    function getXML(){ //建立ajax引擎对象
            var ajax; if(window.XMLHttpRequest){//火狐
 ajax=new XMLHttpRequest(); }else if(window.ActiveXObject){//ie
 ajax=new ActiveXObject("Msxml2.XMLHTTP"); } //复写onreadystatechange
 ajax.onreadystatechange=function(){ //判断Ajax状态吗
                if(ajax.readyState==4){ //判断响应状态吗
                    if(ajax.status==200){ //获取响应内容
                        var doc=ajax.responseXML; //处理响应内容
                            //获取元素对象
 alert(doc.getElementsByTagName("name")[0].innerHTML); } } } //发送请求
 ajax.open("get","xml.jsp",true); ajax.send(null); } </script>
</head>
<body>
    <h3>XML数据格式学习</h3>
    <hr>
    <input type="button" value="测试XML" onclick="getXML()" />
    
    
    
</body>
</html>

 

 

可是这种方式没有json好,因此推荐用json方式进行进行解析会更好一点。

相关文章
相关标签/搜索