JavaWeb开发$.ajax如何向后台传输数据

黑马Java第二阶段:JavaWeb(笔记) 阅读详情

转载:https://blog.youkuaiyun.com/qq_30051139/article/details/52936618

在Web开发中,前台和后台的数据交互是十分频繁的, 而JQuery对Ajax进行了封装,使得前台向后台发送数据变得十分简单。

假如后台有一个Java类User,来接收并封装数据

public class User{
    private Interger id;
    private String name;
    private String sex;
}
  • 1
  • 2
  • 3
  • 4
  • 5

一、简单的数据格式


$.ajax发送数据的几种形式

//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 简单的js对象
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
    } 
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

针对以上方式,后台数据的获取(SpringMvc框架)


@RequestMapping(value = "/testAjax")
public class UserController{
    // 1 将User放到参数中,框架进行封装
    @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");
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

二、复杂的数据格式


复杂的数据一般采用JSON格式来传输,并且Java对JSON格式的数据也都有很好的支持,如JSON-lib的JSONArray和JSONObject、jackson等技术。 
注意: 前后台传输的JSON数据一般是JSON对象序列化的字符串,而不是直接传递JSON对象。

//1 JSON对象
var user = {id:1,name:"zhangxiaofan",sex:"male"};
//2 自己拼接JSON字符串
var userStr = '{"id":"1","name":"zhangxiaofan","sex":"male"}';
//3 JSON.stringify(data) JS方法序列化JSON对象
var userStr = JSON.stringify(user);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
//1 将JSON字符串作为value值,后台借助JSON解析工具

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

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

//2 结合SpringMvc的@RequestBody,@RequestBody需要把所有请求参数作为json解析,不能包含key=value这样的写法在请求url中,可以轻易的将一个对象或者数组传到Java端,使用@RequestBody即可绑定到对象或者List/数组
//(1)对象
var user = {
    id:1,
    name:"zhangxiaofan",
    sex:"male"
}
$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",  //需要设置contentType
    url: "/testAjax/addUser",
    data: JSON.stringify(user) ,
    success:function(data){  
        //TODO
    } 
})

//后台
@RequestMapping(value = "/addUser")
    public String addUser(HttpServletRequest request,@RequestBody User user) {

    }
//(2)数组
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",  //需要设置contentType
    url: "/testAjax/addUser",
    data: JSON.stringify(users) ,
    success:function(data){  
        //TODO
    } 
})   

//后台
@RequestMapping(value = "/addUser")
    public String addUser(HttpServletRequest request,@RequestBody List<User> user) {
    //上面也可以将List<User>改为User[]数组
    }
JavaWeb项目中AJAX与JSON数据交互的实战演练 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。它利用了JavaScript、XMLHttpRequest对象和DOM实现,于2005年由Jesse James Garrett提出并命名。这一技术随着Web应用程序复杂性的增加而出现,旨在提升用户的交互体验。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集。 阅读详情

相关推荐

国密SSL实战:手把手教你用Wireshark抓包分析GMTLS协议(附证书链验证技巧)

本文提供了一份国密SSL(GMTLS)协议的实战抓包分析指南。通过详细讲解Wireshark的配置、GMTLS握手流程的捕获与筛选,以及双证书机制和证书链的深度解析,帮助工程师和开发人员掌握使用Wireshark排查国密SSL连接问题、进行密评和协议调试的核心技巧。

rgv234567的博客 501

ajax前后数据交互传递,javaWeb前后端传递数据交互的两种方式

从前端向后台传递参数方法一、通过表单传递参数1.前端部分,在前端jsp页面设置form表单,确定需要传递的参数让用户输入,通过点击按钮后submit()提交到后台,用户名: 密 码: 登录注册用户名: 密 码: 性 别: 男 女工 资: 编 号: 出生日期: 确定2.后台通过request.getParameter(),获取form表单的数据public Stri...

weixin_42365539的博客 1582

鸿蒙5.0进阶开发:UI开发-不依赖UI组件的全局自定义弹出框 (openCustomDialog)(推荐)

本文介绍通过入参形式为ComponentContent创建自定义弹出框............

AyomQAQ的博客 1849

ajax与Java后台互相传数据

目录 1. 简介 2.方法一: 3.方法二: 4.两种方法的对比 onreadystatechange 事件 5.总结 1. 简介 这篇文章讨论的是ajax与Java后台互相传数据的功能,将会用到两种方法【或许叫做ajax使用的两种格式更为恰当】——一种是菜鸟教程上的方法,另一种是在网上查资料的时候大部分人用的方法。文章将重点对比两种方法在数据传输方面的差异性。 2.方法一: 前端js代码: var xmlhttp; ...

qq_43667170的博客 5311

从Overleaf上导出Latex论文发布到arxiv详细教程(常见问题与解决)

如果是做cv的论文请选择“Computer Vision and Pattern Recognition”,选择“Artificial Intelligence”可能会被on hold,貌似这个指的是传统的人工智能?我用公司邮箱注册发布一篇论文,一个多月还是“on hold”状态,换成edu邮箱第二天就被发布了。3、有可能是subject class选错了,编辑会帮你手动选择,然后发一封邮件告知你解除……报错缺失bbl等文件,这是因为从Menu中下载的话,是没有bbl文件的。论文被on hold。

沉迷单车的追风少年 3582

ArcGIS实验教程——实验二:ArcGIS地理配准完整操作步骤

本文介绍ArcGIS 10.2中地理配准的完整操作流程,涵盖加载扫描地图、启用地理配准工具条、添加控制点(含经纬度输入与坐标系统选择)、均匀分布控制点以提升精度,并最终通过“更新地理配准”完成栅格数据的空间定位。强调控制点数量、分布及坐标系匹配的重要性,附带实验数据下载链接与获取方式,适用于初学者掌握扫描矢量化前的关键几何校正技能。

智慧空间实验室 9万+

ajax与java后端互传数据

文章目录后端传到前端(传一个集合,展示成表格)controller层js部分前端 向后端传值js部分controller层 后端传到前端(传一个集合,展示成表格) controller层 @RequestMapping("/showAll") @ApiOperation(value = "展示所有图书", httpMethod = "POST") public void showAll(HttpServletResponse resp,String lend) throws IOExce

qq_63897791的博客 1974

微软商店报错“此产品当前不可用”?终极修复指南

微软商店报错“此产品当前不可用”?终极修复指南

安德洛夫 3804

AJAX从前端传递数据到后端

使用jQuery AJAX从前端传递数据到后端

weixin_45730969的博客 4224

智能工厂评估模型研究

摘要:通过对国内外现有智能制造评估模型的研究,结合重庆制造业行业领跑者与落后者之间差距大的现状,以实现全要素全连接的数字化工厂为出发点,融合工业互联网标识,构建实践可行的智能工厂评估模型推动中小型企业参与智能制造转型,缓和两极分化问题。本评估模型包含工厂体系架构的3个层级,提供用于推动智能制造转型的参考,包括设计、生产、管理的全过程评估。关键词:智能制造评估模型;智能制造转型;全连接工厂;工业互联网标识0 引言受行业需求与技术创新的影响,全球制造业在历经了工业1.0机械化、工业2.0电气化和工业3.0自动

罗伯特技术屋 676

YOLOv8模型轻量化实战:基于稀疏化剪枝与L1正则化的高效目标检测模型优化-附源码

本文提出一种YOLOv8轻量化方案,通过L1正则化稀疏化训练和动态阈值通道剪枝,在边缘计算场景中优化模型性能。方案分三步:首先通过L1正则诱导权重稀疏化并动态衰减系数;然后基于BN层权重统计进行通道剪枝,保留80%关键通道;最后对剪枝模型微调恢复精度。在COCO128数据集上验证,模型体积压缩40%,推理速度提升2.3倍,mAP仅下降0.4%,实现了精度与效率的平衡。该方案为移动端部署提供了可行的轻量化技术路径。

m0_64661770的博客 479

使用Ajax向后台传参数

使用ajax向后台传递数据写了三种对象,文件,基本类型以及他们的混合

weixin_45058582的博客 4178

高级图像增强——模拟雨天,雾,雪,阳光,阴影,运动模糊,畸变等14种效果,同步扩充标签文件

本文提供了一些高级的,特殊的图像增强方法,具体包括、光。

Limiiiing的博客 1308

ajax获取java后台数据_JavaWeb开发$.ajax如何向后台传输数据

在Web开发中,前台和后台的数据交互是十分频繁的, 而JQuery对Ajax进行了封装,使得前台向后台发送数据变得十分简单。假如后台有一个Java类User,来接收并封装数据public class User{private Interger id;private String name;private String sex;}12345一、简单的数据格式$.ajax发送数据的几种形式//1 直接...

weixin_39526872的博客 431

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

javaweb 前台将数据以AJAX方式提交到后台,后台以json格式解析并返回前端

今天搞了好久这个前后端数据交互的过程,有点难受,写点总结吧 1 html文件传输数据(AJAX) $.ajax({ type:"POST", dataType:"json", url:"UserServlet?method=loginAjax", data:{ "loginacct":loginacct, "userpas...

不言尘世 2478

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

JavaWeb之servlet关于Ajax实现前后端分离

JavaWeb之servlet关于Ajax实现前后端分离的简单了解,介绍,简单应用和实际应用

2301_76908023的博客 2643

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JavaWeb 核心:AJAX 深入详解与实战(Java 开发者视角)

摘要: AJAX技术通过异步通信实现Web应用无刷新更新,提升用户体验与性能。本文从Java开发者视角解析AJAX核心原理,对比原生JavaScript(XMLHttpRequest/fetch)与jQuery的实现方式,并结合SpringBoot后端实战演示用户管理功能(CRUD)。重点涵盖:1)AJAX工作流程与优势;2)前后端协作(RESTful API设计、JSON数据传输);3)跨域(CORS)、错误处理等关键问题解决方案;4)实战案例中动态加载、表单提交等场景实现。帮助Java开发者掌握这一连接

weixin_73962764的博客 1442

拆解 JavaWeb 交互:JSON 的键值结构如何解决 Ajax 的数据传输痛点?

JSON 的键值结构通过其轻量级、易解析和灵活性,解决了 Ajax 在 JavaWeb 交互中的核心痛点:减少数据冗余、加速解析、支持复杂数据、简化跨域和提高开发效率。在实际项目中,结合 Java 库(如 Jackson)和前端 Fetch API,可实现高效异步通信,提升用户体验。

2501_94068611的博客 1458

JavaWeb:(练习)九、Servlet数据交互、XMLHttpRequest、JSON、AJAX、AXIOS练习

JavaWeb:(练习)九、Servlet数据交互、XMLHttpRequest、JSON、AJAX、AXIOS练习;

qq_44125436的博客 893

【JavaWeb】95:同步和异步请求、Ajax以及json

面试官:给我说说什么是同步异步?

刘小爱的博客 720

JavaWeb笔记之AJAX技术

一、AJAX是什么? AJAX是英文Asynchronous JavaScript and XML 的缩写,含义是异步JavaScript与XML。 二、AJAX主要实现什么功能 该技术主要实现客户与服务器的异步通信,实现页面的部分刷新。AJAX可以在不刷新整个页面的情况下用JavaScript操作DOM以实现页面动态更新。

JAVA开发区的博客 768

用JQuery来做Ajax的用户登录操作,较为完整(JavaWeb)

1.概念:异步的JS和XML 2.构成:JS/DOM,CSS,XML,XMLHttpRequest 3.作用: 以往的方式:请求--web服务器--响应--再请求--web服务器--响应 表单提交--web服务器处理--响应(转发、重定向、流输出)--输出HTML(同步传输) 问题:在网络不好时,表单提交容易造成屏幕白屏,处于等待状态 AJAX技术:如何解决呢? 1、通过AJAX提交...

曾小超的博客 2999

JavaWeb项目前后端分离

前戏 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦, 并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。 这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用后端的restuful ...

生而为人我很抱歉 8266

JavaWeb应用之实现网站注册和登录功能

JavaWeb中包含的技术有HTML、CSS、JS、jQuery、Request、Response、Servlet、JSP、Ajax、Cookie、Session、JDBC等,本文介绍下如何通过这些技术实现网站注册和登录功能,本文主要分为两个部分:第一个部分偏理论,主要是介绍一些技术和实现细节;第二个部分偏实践,主要是自己独立完成过程中遇到的bug和总结。 一、第一部分: 1、完成注册功能 首先是...

Zb20171027的博客 4174
上一篇: 通过Ajax方式上传文件,使用FormData进行Ajax请求
下一篇: InputStream类中的三种read方法-学习中有发现了一个重要知识惊喜
周末去看海
博客等级 码龄9年 50粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值