亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Servlet返回的數(shù)據(jù)js解析2種方法

 更新時間:2019年12月12日 14:22:51   作者:淺灘淺  
這篇文章主要介紹了Servlet返回的數(shù)據(jù)js解析2種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了Servlet返回的數(shù)據(jù)js解析2種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

方式1:Json

接收函數(shù):ajax.responseText后面沒括號

其實在之前所說的ajax中還遺留了一些問題就是,Servlet返回給js的數(shù)據(jù)是如何被js解析的呢?

之前只是發(fā)送了一句話,所以他就以html的格式進行解析就成功了,但是在實際中我們往往發(fā)送的數(shù)據(jù)是存在一個對象當中的又或者是一組對象當中的,我們應該如何發(fā)送呢?

json:js當中有一種有一種結構就是json,說白了就是鍵值對。

例如下面的:

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

我們可以在Servlet將屬性與值進行拼接,得到json格式的字符串,這樣js中就能以這樣的格式進行數(shù)據(jù)的解析了。

類似于下面這樣:

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

但是對于懶癌來說這樣的方式是極不友好的,所以就要說到強大的jar包了。

有一款名為gson的jar包可以幫你完成拼接的工作

對于使用就是你直接將對象丟進去就好,它會自動幫你轉為json格式。

然后又有問題來了,json的數(shù)據(jù)給js有什么用,我們一般操縱的是對象呀!

別慌,eval幫你解決

方式2:XML進行解析

接收函數(shù):ajax.responseXML后面沒括號

可以將用戶數(shù)據(jù)以Xml進行發(fā)送然后js也以xml格式解析

用戶數(shù)據(jù)的xml可以寫在jsp中,然后js的跳轉(open函數(shù))就不用跳轉到Servlet中而是jsp中找用戶數(shù)據(jù)

用戶數(shù)據(jù)jsp:

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

ajax接收數(shù)據(jù)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(){
    //創(chuàng)建ajax引擎對象
      var ajax;
      if(window.XMLHttpRequest){//火狐
        ajax=new XMLHttpRequest();
      }else if(window.ActiveXObject){//ie
        ajax=new ActiveXObject("Msxml2.XMLHTTP");
      }
    //復寫onreadystatechange
      ajax.onreadystatechange=function(){
        //判斷Ajax狀態(tài)嗎
        if(ajax.readyState==4){
          //判斷響應狀態(tài)嗎
          if(ajax.status==200){
            //獲取響應內(nèi)容
            var doc=ajax.responseXML;
            //處理響應內(nèi)容
              //獲取元素對象
              alert(doc.getElementsByTagName("name")[0].innerHTML);
          }
        }
      }
    //發(fā)送請求
      ajax.open("get","xml.jsp",true);
      ajax.send(null);
  }


</script>
</head>
<body>
  <h3>XML數(shù)據(jù)格式學習</h3>
  <hr>
  <input type="button" value="測試XML" onclick="getXML()" />
  
  
  
</body>
</html>

但是這種方式?jīng)]有json好,所以推薦用json方式進行進行解析會更好一點。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論