您好,登錄后才能下訂單哦!
小編給大家分享一下Servlet返回數據js解析的方法有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
方式1:Json
接收函數:ajax.responseText后面沒括號
其實在之前所說的ajax中還遺留了一些問題就是,Servlet返回給js的數據是如何被js解析的呢?
之前只是發送了一句話,所以他就以html的格式進行解析就成功了,但是在實際中我們往往發送的數據是存在一個對象當中的又或者是一組對象當中的,我們應該如何發送呢?
json:js當中有一種有一種結構就是json,說白了就是鍵值對。
例如下面的:
{ "firstName":"John" , "lastName":"Doe" }
我們可以在Servlet將屬性與值進行拼接,得到json格式的字符串,這樣js中就能以這樣的格式進行數據的解析了。
類似于下面這樣:
resp.getWriter().write("{name:"+u.getHeroName()+ ",lifenum:"+u.getLifeNum()+ ",type:"+u.getType()+ ",desc:"+u.getDesc() +"}")
但是對于懶癌來說這樣的方式是極不友好的,所以就要說到強大的jar包了。
有一款名為gson的jar包可以幫你完成拼接的工作
對于使用就是你直接將對象丟進去就好,它會自動幫你轉為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> <h4>XML數據格式學習</h4> <hr> <input type="button" value="測試XML" onclick="getXML()" /> </body> </html>
但是這種方式沒有json好,所以推薦用json方式進行進行解析會更好一點。
看完了這篇文章,相信你對“Servlet返回數據js解析的方法有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。