Spring MVC框架:第十一章:Ajax

//@ResponseBody表示使用handler方法的返回值作为响应体,不再前往任何一个视图

@ResponseBody

//使用produces="text/html;charset=UTF-8"设置解决响应数据乱码问题

//如果是JSON数据内容类型是:application/json

@RequestMapping(value=“/one”,produces=“text/html;charset=UTF-8”)

public String one(

@RequestParam(“empId”) Integer empId,

@RequestParam(“userName”) String userName) {

System.out.println(“empId=”+empId);

System.out.println(“userName=”+userName);

return “执行成功!!!”;

}

在这个例子中,handler方法接收数据和之前是没有什么区别的,新的知识点是@ResponseBody注解。这个注解的作用是把当前handler方法的返回值直接作为响应数据返回给浏览器而不是进行视图名称的解析。

2发送对应POJO的数据

页面:

实验2:发送对应POJO的数据

jQuery:

$(“#btn2”).click(function(){

//实验2:发送对应POJO的数据

var url = “${pageContext.request.contextPath }/two”;

var param = {

“stuId”:5,

“stuName”:“jerry”,

“stuSubject”:“java”,

“random”:Math.random()

};

var callBack = function(response){

console.log(response);

};

var type = “text”;

//发送POST方式的Ajax请求

$.post(url, param, callBack, type);

});

handlers:

@ResponseBody

@RequestMapping(value=“/two”,produces=“text/html;charset=UTF-8”)

public String two(Student student) {

System.out.println(student);

return “执行成功!!!”;

}

这里又用到了@RequestBody注解,它的作用是把请求体中的JSON数据转换成我们指定的数据类型。同时在@RequestMapping注解上我们额外增加了produces属性用来指定响应体数据的编码方式,以此来解决响应数据的字符乱码问题。

大家可以记住这个结论:使用@ResponseBody返回响应数据时,需要在@RequestMapping注解中使用produces="application/json;charset=UTF-8"来解决字符集问题。

3发送JSON请求体

实验3:发送JSON请求体

jQuery:

$(“#btn3”).click(function(){

//1.创建数组对象

var stuArray = new Array();

//2.准备要存入数组的数据

var stu01 = {“stuId”:11,“stuName”:“tom11”,“stuSubject”:“php11”};

var stu02 = {“stuId”:22,“stuName”:“tom22”,“stuSubject”:“php22”};

var stu03 = {“stuId”:33,“stuName”:“tom33”,“stuSubject”:“php33”};

//3.存入数组

stuArray.push(stu01);

stuArray.push(stu02);

stuArray.push(stu03);

//4.将数组对象转换成字符串

var requestBodyData = JSON.stringify(stuArray);

//5.发送Ajax请求

$.ajax({

“url”:“${pageContext.request.contextPath }/three”, //请求地址

“contentType”:“application/json;charset=UTF-8”, //请求体的内容类型

“data”:requestBodyData, //发送给服务器的数据,将来的请求体

“dataType”:“text”, //预期服务器返回的响应体类型

“success”:function(response){console.log(response)},//服务器成功返回响应后的回调函数

“type”:“POST” //发送请求的请求方式

});

});

handlers:

@ResponseBody

@RequestMapping(value=“/three”,produces=“text/html;charset=UTF-8”)

//@RequestBody将请求体的JSON数据转换为Java类型

public String three(@RequestBody List stuList) {

for (Student student : stuList) {

System.out.println(student);

}

return “执行成功!!!”;

}

4.接收文本

实验4:接收文本

jQuery:

$(“#btn4”).click(function(){

//实验4:接收文本

var url = “${pageContext.request.contextPath }/four”;

var callBack = function(response) {

console.log(response);

console.log(response.stuName);

};

//如果服务器返回的是JSON字符串,但是type=“text”,那么response将仅仅是一个字符串,

//不能直接访问JSON数据的属性

var type = “text”;

$.post(url, callBack, type);

});

handlers:

@ResponseBody

@RequestMapping(value=“/four”,produces=“text/html;charset=UTF-8”)

public String five() {

return “来自服务器端的回应……”;

}

5.接收JSON

实验5:接收JSON

JQuery:

$(“#btn5”).click(function(){

//实验5:接收JSON

var url = “${pageContext.request.contextPath }/five”;

var callBack = function(response) {

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
…(img-viZZTnPD-1715063045877)]

[外链图片转存中…(img-knwPoI7K-1715063045877)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 30
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值