java web请求字符串处理_java web工作常用技能篇(三)-封装复杂请求对象2

前言:在各类网站论坛上,没有找到与工作比较贴切的技能,所以特此写一些对刚步入工作或者工作中没有重视的技能与问题,各位大牛请及时关闭文章.

ps1:文中所有标点都是英文的,看官请不要在意.为了便于平时敲代码,所以中文输入法也默认了英文标点(防止各类因为标点引起的低级错误).纯属个人原创见解,若不正确,请各位批评指正.

ps2:读懂本文,你可能需要具备对JSON格式对象的理解,以及SpringMVC中Controller的作用

这边我统一以SpringMVC框架为例进行讲解参数封装方法,我只介绍最常用的几种请求方式(因为其他请求方式不经常使用,所以不作为本文重点).如果文中介绍到的内容有不明白的,敬请留言评论.

19f20006b90203333479.jpg

java

大多数情况,我们都是通过ajax方式进行提交复杂对象进行插入或更新操作,下面我们举个例子接着上一篇继续介绍封装复杂参数的其他方式我们的需求是 : 在一个请求中将某一个学生信息,该学生的语数外三门成绩以及该学生的老师信息同时传入后台.

学生类如下:(学生包含多个成绩)

19fa0000c3a6f4f64213.jpg

学生类

成绩类如下:

19f20006b968e8c7d762.jpg

成绩类

教师类如下:

19fa0000c3e8ef2a935d.jpg

教师类

接受请求参数的Controller方法如下:

19fb0000ca0135e6a548.jpg

Controller方法

ajax方式封装复杂对象(一)

在测试页面中直接编写一个ajax请求,将请求参数封装成我们需要的格式,如下:

19fa0000c76ef3e32f1f.jpg

ajax封装复杂参数

我们测试效果如下:

19f50006bdf5f25185a5.jpg

断点查看效果

总结:ajax方式封装参数使用Json数据格式,List使用[obj1,obj2],任意对象使用{key1:value2,key2:value2},对象可以嵌套对象

需要使用JSON.stringify()方法将json对象转换成json字符串

ajax的contentType属性必须是'application/json;charset=utf-8'

在接收参数前面需要加上SpringMVC的@RequestBody注解

ajax方式封装复杂对象(二)

如果我们并没有一个合适的对象来接受我们的参数时,我们可能需要封装到Map中,那么我们需要修改接收请求的Controller方法,如下图:

19f70006caefcf320006.jpg

参数封装成一个大Map

前台ajax参数封装格式一致,无需变更,如下图:

19fa0000c76ef3e32f1f.jpg

ajax参数封装到map中

我们测试效果如下(正确封装了一个复杂的Map对象):

19f80006be552eb89ec2.jpg

断点查看map中参数

总结:(其实Map与我们自定义的类是一样的道理)ajax方式封装参数使用Json数据格式,List使用[obj1,obj2],任意对象使用{key1:value2,key2:value2},对象可以嵌套对象

需要使用JSON.stringify()方法将json对象转换成json字符串

ajax的contentType属性必须是'application/json;charset=utf-8'

在接收参数前面需要加上SpringMVC的@RequestBody注解

与封装到自定义类的区别:Map取值通过我们约定好的key来取,而类通过自己的属性名来取

ajax方式封装复杂对象(三)

同样,如果我们并没有一个合适的对象来接受我们的参数时,我们也不想使用Map时,那么我们还可以使用字符串来接受复杂的JSON字符串,那么我们需要修改接收请求的Controller方法,如下图:

19fa0000cff12e447474.jpg

定义字符串接受json对象字符串

(注意:上图中,我们还用到了Gson这个对象,它是用来处理json字符串与具体的java对象互相转换问题的)

同时我们需要修改jsp中发送请求的ajax方法,如下图:

19f50006c3724c270e23.jpg

ajax请求参数封装方法三

总结:ajax方式封装参数使用Json数据格式,List使用[obj1,obj2],任意对象使用{key1:value2,key2:value2},对象可以嵌套对象

需要使用JSON.stringify()方法将json对象转换成json字符串,并将该负责的json字符串作为value形成新的json格式的参数对象,如上图中{stuJsonStr:负责json字符串}

Java后台中,需要将接收到的json字符串使用Gson(或者JSONObject等)第三方类转换成我们需要的具体对象.

结尾ps:

小编花了不少时间编写例子,为了突出代码中的关键字,因此采用截图方式,希望各位同学看后能够利用在自己的项目中,或者自己参考编写文中的例子深刻理解一下.若文中有不能理解的地方请留言评论.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab学习------------带有右键菜单的GUI学习实例

实例步骤: 须要设置UIContextMenu,否则点击右键不显示。 右键点击第一个菜单之后:(在菜单中加入对应的回调函数) function r1_Callback(hObject, eventdata, handles) % hObject handle to r1 (see GCBO) % eventda…

多方位助您快速精准查阅文献和发文章的利器——X-MOL

全世界只有3.14 % 的人关注了爆炸吧知识无论您看文献的习惯是怎样的,X-MOL都有一种为您节省时间的功能:01根据参考文献一键直达全文—— X-MOL文献直达复制文章题录信息(如“PNAS, 2020, 117, 6771-6776”)或DOI, 粘贴到X-MOL首页…

ASP.NET Core端点路由中三种让人困惑的路由函数

早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和路由,其核心目的是将请求落地点与路由寻址方式解耦。《ASP.NET Core端点路由作用原理》这里面有几个容易混淆的函数•MapControllerRoute•MapDefaultControllerRoute•MapControllers有什么不同&#x…

java 写入环境变量_Java环境变量配置 - import_key的个人空间 - OSCHINA - 中文开源技术交流社区...

Java 环境变量和路径在 Solaris 系统上,必须先设置 JAVA_HOME 和 PATH 环境变量,Sun Management Center 3.6 安装向导、设置向导和 Java 控制台才能正常工作。与此类似,要使 Sun Management Center Java 控制台在 Microsoft Windows 上正常工…

电脑温度检测软件哪个好_实时检测Mac电脑的温度

想要实时检测Mac电脑的温度吗?那就来试试这款Temperature Gauge Pro吧。Temperature Gauge Pro又名为TG Pro,是一款专业的Mac实时温度的软件。这款软件能够帮助大家进行Mac中的风扇控制、温度监控和硬件诊断等功能,帮助大家更好的维护自己电脑…

【转】SQL SERVER 存储过程学习笔记

原文地址:http://www.cnblogs.com/nina-piaoye/archive/2006/09/18/507183.html 将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命…

我一哥们,在东莞和五名女孩被抓了.....

1 人在东莞,与五名女子一起被抓现已失联▼2 羊:我有一句MMP,不知当讲不当讲▼3 这是在上网查下一步应该怎么做?▼4 人生处处是惊喜▼5 看似平平无奇的棉签▼6 陈独秀同学,有话你站在桌子上说▼7 现在的玩具都这…

【成长点滴】对SMART原则的一些粗浅理解

【成长点滴】对SMART原则的一些粗浅理解 以下解释来自百度百科 “所谓SMART原则,即是: S:(Specific) 目标要清晰、明确,让考核者与被考核者能够准确的理解目标;M:(Measurable) 目标要量化,考核时…

太神奇了!使用C#实现自动核验健康码:(2)OCR识别

前言上次太神奇了!使用C#实现自动核验健康码:(1)二维码识别,我们已经实现了识别健康码的颜色,但是健康码的内容不包含时间属性。那么使用图片就可以通过检查,肯定是不合适的。因此,我们还需要读出健康码上方…

bo耳机h5使用说明_真香时刻·性价比大旗——红米AirDots2 TWS真无线耳机体验测评...

TWS真无线耳机经过了这几年的发展,在音质、连接稳定性、易用性等方面都有了长足的发展,价格也从最早的上千元下探到了数百元,真正从发烧玩家的尝鲜设备变成了大众的日常用品。我用过的TWS耳机不下数十个,但即使是如Bose、B&O等…

这个行业人才紧缺,就业率超高!未来大有可为!

全世界只有3.14 % 的人关注了爆炸吧知识近几年,伴随人工智能的兴起,数据分析师、算法工程师等职业也迎来需求高峰。时下人工智能是炙手可热的一个行业,2015-2018年,中国人工智能产业市场规模从112.4亿元增长至415.5亿元&#xff0…

hash算法_到底什么是Hash?Hash算法的原理和实际应用讲解

提到hash,相信大多数同学都不会陌生,之前很火现在也依旧很火的技术区块链背后的底层原理之一就是hash,下面就从hash算法的原理和实际应用等几个角度,对hash算法进行一个讲解。1、什么是HashHash也称散列、哈希,对应的英…

java 子类 复制_关于java子类继承来的属性与方法究竟是完全复制还是共用使用...

关于java子类继承来的属性与方法究竟是完全复制还是共用使用关于java子类继承来的属性与方法究竟是完全复制还是共用使用今天在学习java的面向对象时,无意间发现一个问题。public class testEquals{public static void main(String[] args){Child cd1 new Child();…

女生会 P 的可不仅仅是丰胸和瘦腿......

1 打死你都想不到女生还有这种操作▼2 小朋友的大哥式道歉▼3 可能舌头和尾巴对猫来说也是另一种生物吧?▼4 当代年轻人的发际线▼5 这一招江湖上俗称“老汉推车”▼6 身正不怕影子斜人正不怕车子歪▼7 这位大爷太过于自信了▼你点的每个赞,我都认…

何时使用领域驱动设计

何时使用领域驱动设计?其实当你的应用程序架构设计是面向业务的时候,你已经开始使用领域驱动设计了。领域驱动设计既不是架构风格(Architecture Style),也不是架构模式(Architecture Pattern)&a…

使用MOM 2005监视DC的磁盘空间

在使用MOM 2005监视DC的磁盘空间之前首先需要在MOM 2005服务器上导入Active Directory的管理包,这样MOM 2005服务器才能够对域控制器进行管理 我来到一台计算机名称叫做MOM2005的计算机 它是一台MOM 2005管理服务器同时是一台MOM 2005报表服务器 打开MOM 2005管理控制台--按管…

latex 1图加标题_使用VsCode编译latex心得

本人最早接触latex是刘海洋老师的《latex入门》,大家可自行搜索相关资源查阅,可以作为参考书,不建议从头到尾的翻阅学习。学习窍门在配置好相关软件之后,应当立即编译一个模板,保证能通过。相关的模板如IEEE等学术报告…

这就是为什么上帝和魔鬼都喜欢数学......

全世界只有3.14 % 的人关注了爆炸吧知识是上帝的指纹还是魔鬼的聚合物两千多年来,几何学的研究主要集中在欧几里得几何上。正因如此,欧式几何中由直线或曲线、平面或曲面、平直体或曲体所构成的各种几何形状,一直是人类认识自然物体形状的有力…

反向压力

大家好,我是鱼皮,今天分享一个实用的编程小知识 —— 反向压力。在介绍反向压力前,我们先聊聊什么是压力?什么是压力?我是一个打工人,日常工作就是听产品经理的话,写代码做需求。正常打工正常情…

AVL树----java

AVL树----java AVL树是高度平衡的二叉查找树 1.单旋转LL旋转 理解记忆&#xff1a;1.在不平衡的节点的左孩子的左孩子插入导致的不平衡&#xff0c;所以叫LL private AVLTreeNode<T> leftLeftRotation(AVLTreeNode<T> k2) {AVLTreeNode<T> k1;k1 k2.left;k2…