www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀] 在Web開發(fā)中,前臺(tái)和后臺(tái)的數(shù)據(jù)交互是十分頻繁的, 而JQuery對(duì)Ajax進(jìn)行了封裝,使得前臺(tái)向后臺(tái)發(fā)送數(shù)據(jù)變得十分簡(jiǎn)單。 假如后臺(tái)有一個(gè)Java類User,來接收并封裝數(shù)據(jù) public c

在Web開發(fā)中,前臺(tái)和后臺(tái)的數(shù)據(jù)交互是十分頻繁的, 而JQuery對(duì)Ajax進(jìn)行了封裝,使得前臺(tái)向后臺(tái)發(fā)送數(shù)據(jù)變得十分簡(jiǎn)單。

假如后臺(tái)有一個(gè)Java類User,來接收并封裝數(shù)據(jù)

public class User{
    private Interger id;
    private String name;
    private String sex;
}
12345
一、簡(jiǎn)單的數(shù)據(jù)格式

$.ajax發(fā)送數(shù)據(jù)的幾種形式

//1 直接在url中傳遞
$.ajax({
    type: "POST",
    url: "/testAjax/addUser?id=1&name=zhangxiaofan&sex=male",
    success:function(data){  
        //TODO
    } 
})

//2 html頁面from表單序列化
var formData = $("#form").serialize();
$.ajax({
    type: "POST",
    url: "/testAjax/addUser",
    data: formData,
    success:function(data){  
        //TODO
    } 
})

//3 拼接data字符串
var formData = $("#form").serialize();
$.ajax({
    type: "POST",
    url: "/testAjax/addUser",
    data: "id=1&name=zhangxiaofan&sex=male",
    success:function(data){  
        //TODO
    } 
})

//4 簡(jiǎn)單的js對(duì)象
var userData = {
    id:1,
    name:zhangxiaofan,
    sex:male
}
$.ajax({
    type: "POST",
    url: "/testAjax/addUser",
    data: userData,     //或者data:{id:1,name:zhangxiaofan,sex:male}
    success:function(data){  
        //TODO
    } 
})
123456789101112131415161718192021222324252627282930313233343536373839404142434445

針對(duì)以上方式,后臺(tái)數(shù)據(jù)的獲?。⊿pringMvc框架)


@RequestMapping(value = "/testAjax")
public class UserController{
    // 1 將User放到參數(shù)中,框架進(jìn)行封裝
    @RequestMapping(value = "/addUser")
    public String addUser(User user) {
        //TODO
    }

    // 2 自己獲取
    @RequestMapping(value = "/addUser")
    public String addUser(HttpServletRequest request) {
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String sex= request.getParameter("sex");
    }

}
123456789101112131415161718
二、復(fù)雜的數(shù)據(jù)格式

復(fù)雜的數(shù)據(jù)一般采用JSON格式來傳輸,并且Java對(duì)JSON格式的數(shù)據(jù)也都有很好的支持,如JSON-lib的JSONArray和JSONObject、jackson等技術(shù)。?
注意:?前后臺(tái)傳輸?shù)腏SON數(shù)據(jù)一般是JSON對(duì)象序列化的字符串,而不是直接傳遞JSON對(duì)象。

//1 JSON對(duì)象
var user = {id:1,name:"zhangxiaofan",sex:"male"};
//2 自己拼接JSON字符串
var userStr = '{"id":"1","name":"zhangxiaofan","sex":"male"}';
//3 JSON.stringify(data) JS方法序列化JSON對(duì)象
var userStr = JSON.stringify(user);
123456
//1 將JSON字符串作為value值,后臺(tái)借助JSON解析工具

var userStr = '{"id":"1","name":"zhangxiaofan","sex":"male"}';

$.ajax({
    type: "POST",
    url: "/testAjax/addUser",
    data: "user="+userStr ,
    success:function(data){  
        //TODO
    } 
})
//后臺(tái)代碼
String json = request.getParameter("link");
JSONObject j = JSONObject.fromObject(json);
System.out.println(j.get("linkId"));

//2 結(jié)合SpringMvc的@RequestBody,@RequestBody需要把所有請(qǐng)求參數(shù)作為json解析,不能包含key=value這樣的寫法在請(qǐng)求url中,可以輕易的將一個(gè)對(duì)象或者數(shù)組傳到Java端,使用@RequestBody即可綁定到對(duì)象或者List/數(shù)組
//(1)對(duì)象
var user = {
    id:1,
    name:"zhangxiaofan",
    sex:"male"
}
$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",  //需要設(shè)置contentType
    url: "/testAjax/addUser",
    data: JSON.stringify(user) ,
    success:function(data){  
        //TODO
    } 
})

//后臺(tái)
@RequestMapping(value = "/addUser")
    public String addUser(HttpServletRequest request,@RequestBody User user) {

    }
//(2)數(shù)組
var users=[];  
var user1={id:1,name:tom,sex:cat};  
var user2={id:2,name:tom2,sex:cat};  
users.push(user1);  
users.push(user2);  
 $.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",  //需要設(shè)置contentType
    url: "/testAjax/addUser",
    data: JSON.stringify(users) ,
    success:function(data){  
        //TODO
    } 
})   

//后臺(tái)
@RequestMapping(value = "/addUser")
    public String addUser(HttpServletRequest request,@RequestBody List user) {
    //上面也可以將List改為User[]數(shù)組
    }




本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Python和Java是兩種廣泛應(yīng)用于編程領(lǐng)域的高級(jí)編程語言,它們各有優(yōu)劣。本文從程序設(shè)計(jì)應(yīng)用、系統(tǒng)資源占用、高性能處理和語言特點(diǎn)等四方面詳細(xì)介紹兩種編程語言的區(qū)別。

關(guān)鍵字: python java 高性能處理

在這篇文章中,小編將為大家?guī)鞪ava接口的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: java 接口 Interface

boa 是一個(gè)小巧的web 服務(wù)器,可執(zhí)行代碼只有70KB,占用的系統(tǒng)資源少,速度快安全性能高。

關(guān)鍵字: web 服務(wù)器 系統(tǒng)資源

應(yīng)該有不少小伙伴有假期打工的經(jīng)歷,那今天就來給公眾號(hào)的讀者朋友們分享一個(gè)二哥編程星球里一個(gè)球友在富士康打工 50 天的感受,相信大家看完后會(huì)深深觸動(dòng)的。

關(guān)鍵字: 物聯(lián)網(wǎng) java 博客

WWW網(wǎng)絡(luò)既是WAP網(wǎng)絡(luò)的組成部分,又是WAP網(wǎng)絡(luò)模型的基礎(chǔ)。Internet網(wǎng)絡(luò)的體系結(jié)構(gòu)展示了一種非常靈活且功能強(qiáng)大的編程模型,它用標(biāo)準(zhǔn)的數(shù)據(jù)格式來標(biāo)識(shí)應(yīng)用程序和內(nèi)容,并通過Web瀏覽器進(jìn)行瀏覽。

關(guān)鍵字: WWW WAP web

傳統(tǒng)的Web數(shù)據(jù)庫系統(tǒng)一般實(shí)現(xiàn)Web數(shù)據(jù)庫系統(tǒng)的連接和應(yīng)用可采取兩種方法,一種是在Web服務(wù)器端提供中間件來連接Web服務(wù)器和數(shù)據(jù)庫服務(wù)器,另一種是把應(yīng)用程序下載到客戶端并在客戶端直接訪問數(shù)據(jù)庫。

關(guān)鍵字: web HTML API

在過去的幾年中,Python的普及速度令人驚嘆,Java的王者地位也常年不衰。目前兩者的競(jìng)爭(zhēng)愈發(fā)激烈,怎么選擇成為了許多初學(xué)者縈繞心中的問題,網(wǎng)上有很多版本的說法牽引著他們的思維,讓本來很簡(jiǎn)單的問題復(fù)雜化。

關(guān)鍵字: python java

我們都知道,瀏覽一個(gè)網(wǎng)頁,有兩個(gè)很主要的“電腦”在共同運(yùn)行,一臺(tái)是遠(yuǎn)程的,為你提供網(wǎng)頁數(shù)據(jù)的“服務(wù)器”,一臺(tái)是你正在使用的客戶端電腦。

關(guān)鍵字: javascript java

在各種網(wǎng)頁制作技術(shù)論壇中,常常有人詢問javascript與Java有什么區(qū)別,甚至有人誤認(rèn)為javascript就是Java。javascript與Java確實(shí)有一定的聯(lián)系,但它們并不像我們想象的那樣聯(lián)系緊密,甚至可以...

關(guān)鍵字: javascript java

對(duì)于很多初學(xué)者來講,不太清楚Java和C語言的區(qū)別,為了讓那個(gè)大家更清晰的了解,近日特意給大家歸納了一些兩者的大致區(qū)別,希望能夠給大家?guī)硪欢ǖ膸椭饔?,也歡迎大家進(jìn)行詳細(xì)補(bǔ)充和歸納。

關(guān)鍵字: C語言 java
關(guān)閉