新聞中心
JAVA為什么要返回JSON數(shù)據(jù)?
第一:json是一種輕量級(jí)的數(shù)據(jù)交換格式,現(xiàn)在之所以要用json,一方面是為了服務(wù)器端發(fā)送到客戶端的數(shù)據(jù)更少,加快傳輸和響應(yīng)速度。另一方面瀏覽器解析json格式的數(shù)據(jù)相對(duì)XML更加容易。

目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、丹寨網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
第二:返回什么格式很大程度取決于前后端的約定,不一定是要返回json格式,現(xiàn)在還是有企業(yè)在接口入?yún)⒑统鰠⑹褂肵ML格式的。
第三:如果你解析過(guò)XML,你會(huì)發(fā)現(xiàn)其標(biāo)簽解析比較麻煩,json這種數(shù)據(jù)格式,對(duì)于Java開(kāi)發(fā)來(lái)說(shuō),看起來(lái)很友好,感覺(jué)更像縮減版的類。
這里僅使用json和xml做對(duì)比,希望回答對(duì)你有所幫助。
其實(shí)不應(yīng)該這么問(wèn)的。
我們都是在服務(wù)傳輸數(shù)據(jù)時(shí),基本都選擇了json來(lái)傳輸。
摒棄了早些年使用的xml格式,為什么呢?
其實(shí)可以做個(gè)對(duì)比:
可讀性方面,json語(yǔ)法簡(jiǎn)單,而xml是規(guī)范的標(biāo)簽形式,易于理解。
可擴(kuò)展性方面,json要比xml有更強(qiáng)的可擴(kuò)展性,json在js處理方面更加有優(yōu)勢(shì)。
編碼難度方面,json可編碼性要比xml更強(qiáng),而xml支持dom、dom4j、sax等方式進(jìn)行解析。
對(duì)于要求描述性強(qiáng)的可以去選擇xml。
對(duì)于數(shù)據(jù)傳輸方面可以直接用json,json格式與語(yǔ)言無(wú)關(guān),也更加易于閱讀和編寫。
同時(shí),json也易于機(jī)器解析和生成,有效提升網(wǎng)絡(luò)傳輸效率,服務(wù)端也可以做壓縮傳輸,在與java對(duì)象轉(zhuǎn)換上更加具備優(yōu)勢(shì)。
恰恰相反,不是Java要返回JSON格式數(shù)據(jù),記得10多年前,Ajax返回的都是html片段為主,如果是數(shù)據(jù)要求,也是以XML居多。
JSON最早是前端需求導(dǎo)致,JSON數(shù)據(jù)其實(shí)就是JavaScript能解析的對(duì)象數(shù)據(jù)表示格式。這樣的數(shù)據(jù)返回,前端直接能用或者JSON.parse一下就能使用,不再需要其他解析手段,比較簡(jiǎn)單。
當(dāng)然,JSON數(shù)據(jù)摒棄了XML的標(biāo)簽,體積小很多,網(wǎng)絡(luò)傳輸也更有優(yōu)勢(shì)。
springsecurity校驗(yàn)token流程?
你好,1. 客戶端發(fā)送請(qǐng)求到服務(wù)器,請(qǐng)求中包含token。
2. 服務(wù)器接收請(qǐng)求后,從請(qǐng)求中獲取token。
3. 服務(wù)器根據(jù)token從緩存或數(shù)據(jù)庫(kù)中獲取相應(yīng)的用戶信息。
4. 如果獲取到用戶信息,則說(shuō)明token有效,繼續(xù)處理請(qǐng)求;否則返回401 Unauthorized錯(cuò)誤。
5. 服務(wù)器可以對(duì)用戶信息進(jìn)行授權(quán)校驗(yàn),例如判斷用戶是否有訪問(wèn)該資源的權(quán)限。
6. 處理完請(qǐng)求后,服務(wù)器會(huì)返回相應(yīng)的響應(yīng)結(jié)果給客戶端。
7. 客戶端根據(jù)響應(yīng)結(jié)果進(jìn)行相應(yīng)的處理,例如展示頁(yè)面、跳轉(zhuǎn)頁(yè)面等。
總的來(lái)說(shuō),spring security校驗(yàn)token的流程就是:客戶端發(fā)送請(qǐng)求,服務(wù)器獲取token并根據(jù)token獲取用戶信息,進(jìn)行授權(quán)校驗(yàn)后處理請(qǐng)求并返回響應(yīng)結(jié)果。
spring security的整體驗(yàn)證流程!1.首先所有的請(qǐng)求都會(huì)走AbstractAuthenticationProcessingFilter.doFilter(req,res,chain)方法2.判斷請(qǐng)求是否需要驗(yàn)證3.authResult = attemptAuthentication(request, response)進(jìn)行用戶驗(yàn)證(request中會(huì)帶有用戶的信息),該方法也是驗(yàn)證過(guò)程中最重要的方法1)返回一個(gè) Authentication 對(duì)象,說(shuō)明驗(yàn)證成功2)驗(yàn)證時(shí)發(fā)生 AuthenticationException。
3)返回Null,表示身份驗(yàn)證不完整。
假設(shè)子類做了一些必要的工作(如重定向)來(lái)繼續(xù)處理驗(yàn)證,方法將立即返回。
假設(shè)后一個(gè)請(qǐng)求將被這種方法接收,其中返回的Authentication對(duì)象不為空。
到此,以上就是小編對(duì)于springboot返回值封裝的問(wèn)題就介紹到這了,希望這2點(diǎn)解答對(duì)大家有用。
網(wǎng)頁(yè)標(biāo)題:JAVA為什么要返回JSON數(shù)據(jù)?(springboot怎么封裝返回?cái)?shù)據(jù))
文章源于:http://www.5511xx.com/article/dpepsco.html


咨詢
建站咨詢
