当前位置: 首页 > news >正文

ajax 的入门案例

一、ajax

ajax,Asynchronous JavaScript And XML,异步的JavaScript和XML

同步:伴随着页面的刷新或跳转,即全局刷新;同步请求会阻塞代码的执行,即同步请求会一个一个的执行

异步:在不刷新页面的情况下与服务器进行交互,即局部刷新;异步请求不会阻塞代码的执行,ajax请求一旦发送,不会等服务器响应结果完毕,后面的代码就会继续执行

ajax的核心对象XMLHttpRequest

二、axios

1、axios入门案例

testAxios(){axios({url:"testAxiosServlet?method=testAxios",//请求路径method:"get"//请求方式}).then(response=>{//请求成功要执行的钩子函数//response表示封装了服务器响应信息的对象console.log(this.message);});
}

2、axios发送请求参数

2.1、发送普通的请求参数

axios({url:"testAxiosServlet?method=testAxios",//请求路径method:"post",//请求方式//params设置普通的请求参数,不管使用的get或post请求方式,请求参数都会拼接在请求地址后params:{username:"admin",password:"123456"}
}).then(response=>{//请求成功要执行的钩子函数//response表示封装了服务器响应信息的对象console.log(this.message);
});

2.2、发送json格式的请求参数

axios({url:"testAxiosServlet?method=testAxiosUseData",//请求路径method:"post",//请求方式//data设置json格式的请求参数,会在请求报文中保存传输到服务器,因此请求方式必须为postdata:{username:"root",password:"abc123"}
}).then(response=>{//请求成功要执行的钩子函数//response表示封装了服务器响应信息的对象console.log(this.message);
});

params和data的区别:

1、params传输请求参数时,可以使用get或post请求方式,会以name=value&name=value的格式拼接在请求地址后

2、data传输请求参数时,只能使用post请求方式,会以{key:value,key:value}的格式在请求报文的请求体中传输到服务器

3、params传输的请求参数可以通过request.getParameter()或request.getParameterValues()获取,但是data传输的请求参数不能通过此方法获取,只能通过获取请求体的方式获取json字符串整体,在通过相应技术转换为Java对象

3、axios.get()

axios.get("testAxiosServlet?method=testAxiosByGet&username=admin&password=123456"
).then(response=>{console.log(response.data);
});

4、axios.post()

axios.post("testAxiosServlet?method=testAxiosByPost",//请求参数{username:"root",password:"abc123"}//使用data的方式传输json格式的请求参数
).then(response=>{console.log(response.data);
});

5、处理json格式的请求参数

5.1、使用gson

protected void testAxiosUseJson(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求体中json格式的请求参数BufferedReader reader = request.getReader();StringBuffer sb = new StringBuffer();String body;while((body = reader.readLine()) != null){sb.append(body);}String data = sb.toString();//data = {"username":"admin","password":"123456","age":23,"gender":"男"}//将json格式的请求参数转换为Java对象(实体类对象、map)//使用Gson将json格式的请求参数转换为实体类对象Gson gson = new Gson();User userByGson = gson.fromJson(data, User.class);System.out.println(userByGson);//使用Gson将json格式的请求参数转换为mapMap mapByGson = gson.fromJson(data, Map.class);System.out.println(mapByGson);response.getWriter().write("hello,testAxiosUseJson");
}

5.2、使用jackson

protected void testAxiosUseJson(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获取请求体中json格式的请求参数BufferedReader reader = request.getReader();StringBuffer sb = new StringBuffer();String body;while((body = reader.readLine()) != null){sb.append(body);}String data = sb.toString();//data = {"username":"admin","password":"123456","age":23,"gender":"男"}//将json格式的请求参数转换为Java对象(实体类对象、map)//使用jackson将json格式的请求参数转换为实体类对象ObjectMapper mapper = new ObjectMapper();User userByJackson = mapper.readValue(data, User.class);System.out.println(userByJackson);//使用jackson将json格式的请求参数转换为mapMap mapByJackson = mapper.readValue(data, Map.class);System.out.println(mapByJackson);response.getWriter().write("hello,testAxiosUseJson");
}

6、响应浏览器json格式的结果

6.1、使用gson

protected void testAxiosReturnJson(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {User user1 = new User(1001,"admin1","123456",23,"男");User user2 = new User(1002,"admin2","123456",23,"男");User user3 = new User(1003,"admin3","123456",23,"男");Gson gson = new Gson();//通过gson将实体类对象转换为json响应浏览器//String jsonString = gson.toJson(user);//通过gson将map转换为json响应浏览器/*Map<String, User> map = new HashMap<>();map.put("1001", user1);map.put("1002", user2);map.put("1003", user3);String jsonString = gson.toJson(map);*///通过gson将list转换为json响应浏览器List<User> list = Arrays.asList(user1, user2, user3);String jsonString = gson.toJson(list);response.getWriter().write(jsonString);
}

6.2、使用jackson

protected void testAxiosReturnJson(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {User user1 = new User(1001,"admin1","123456",23,"男");User user2 = new User(1002,"admin2","123456",23,"男");User user3 = new User(1003,"admin3","123456",23,"男");ObjectMapper mapper = new ObjectMapper();//通过jackson将实体类对象转换为json响应浏览器//String jsonString = mapper.writeValueAsString(user1);//通过jackson将map转换为json响应浏览器/*Map<String, User> map = new HashMap<>();map.put("1001", user1);map.put("1002", user2);map.put("1003", user3);String jsonString = mapper.writeValueAsString(map);*///通过jackson将list转换为json响应浏览器List<User> list = Arrays.asList(user1, user2, user3);String jsonString = mapper.writeValueAsString(list);response.getWriter().write(jsonString);
}

相关文章:

ajax 的入门案例

一、ajax ajax&#xff0c;Asynchronous JavaScript And XML&#xff0c;异步的JavaScript和XML 同步&#xff1a;伴随着页面的刷新或跳转&#xff0c;即全局刷新&#xff1b;同步请求会阻塞代码的执行&#xff0c;即同步请求会一个一个的执行 异步&#xff1a;在不刷新页面…...

Flutter TextField 交互实例 —— 新手礼包

大家好&#xff0c;我是 17。 新手礼包一共 3 篇文章&#xff0c;每篇都是描述尽量详细&#xff0c;实例讲解&#xff0c;包会&#xff01; Flutter Row 实例 —— 新手礼包Flutter TextField UI 实例 —— 新手礼包Flutter TextField 交互实例 —— 新手礼包 本篇包含所有常…...

折叠屏:手机厂商的「续命良药」

【潮汐商业评论/文】 作为办公室的“时尚达人”&#xff0c;Wendy又为自己添置了一款新时尚单品——折叠手机。 “没有哪个女孩子能拒绝一款小巧又时尚的折叠手机吧&#xff0c;我心动了好久&#xff0c;终于狠狠心买了一部。”提起自己的折叠手机&#xff0c;Wendy的眼里满是…...

RabbitMQ 保证消息不丢失的几种手段

文章目录 1.RabbitMQ消息丢失的三种情况2.RabbitMQ消息丢失解决方案2.1 针对生产者2.1.1 方案1 &#xff1a;开启RabbitMQ事务2.1.2 方案2&#xff1a;使用confirm机制 2.2 Exchange路由到队列失败2.3 RabbitMq自身问题导致的消息丢失问题解决方案2.3.1 消息持久化2.3.2 设置集…...

nginx配置

单线程应用 稳定性高 系统资源消耗低 线程切换消耗小 对HTTP并发连接处理能力高 单台服务器可支持2w个并发请求 nginx与apache区别 Nginx相对于Apache的优点: 轻量级&#xff0c;同样是 web 服务&#xff0c;比Apache 占用更少的内存及资源&#xff0c;高并发&#xff0…...

linux从入门到精通 第一章centos7里tomcat,jdk,httpd,mysql57,mysql80的安装

配置centos运行环境 一 安装httpd,tomcat,jdk,mysql1 安装httpd2 安装tomcat3 安装jdk 三 MySql的安装1 克隆出来两台虚拟机2 配置虚拟机3 链接xhsell4 链接xftp5 mysql8的安装6 mysql5.7的安装 一 安装httpd,tomcat,jdk,mysql 1 安装httpd 下载httpd yum -y install httpd关…...

ChatGPT 速通手册——开源社区的进展

开源社区的进展 在 ChatGPT 以外&#xff0c;谷歌、脸书等互联网巨头&#xff0c;也都发布过千亿级参数的大语言模型&#xff0c;但在交谈问答方面表现相对 ChatGPT 来说都显得一般。根据科学人员推测&#xff0c;很重要的一部分原因是缺失了RLHF(Reinforcement Learning with…...

string类

string - C Reference (cplusplus.com) 引入&#xff1a; ASCII码表------>Unicode 其中又进行了分类&#xff1a; &#xff08;UTF--8兼容ASCII码表&#xff09; 等等等等 &#xff08;不但迭代和更新&#xff09; 例&#xff1a; 目录 正文开始&#xff01;&#xff0…...

LLM总结(持续更新中)

引言 当前LLM模型火出天际&#xff0c;但是做事还是需要脚踏实地。此文只是日常学习LLM&#xff0c;顺手整理所得。本篇博文更多侧重对话、问答类LLM上&#xff0c;其他方向&#xff08;代码生成&#xff09;这里暂不涉及&#xff0c;可以去看综述来了解。 之前LLM模型梳理 …...

【GPT4】微软 GPT-4 测试报告(2)多模态与跨学科的组合

欢迎关注【youcans的AGI学习笔记】原创作品&#xff0c;火热更新中 微软 GPT-4 测试报告&#xff08;1&#xff09;总体介绍 微软 GPT-4 测试报告&#xff08;2&#xff09;多模态与跨学科能力 微软 GPT-4 测试报告&#xff08;3&#xff09;编程能力 微软 GPT-4 测试报告&…...

Celery使用教程完整版【从安装到启用】

Celery是一个基于Python开发的异步任务队列&#xff0c;可以实现任务的异步调度和处理。 以下是Celery使用教程的基本步骤&#xff1a; 安装Celery库 使用pip命令安装Celery库&#xff1a; pip install celery 创建Celery实例 在项目的Python文件中创建Celery实例&#x…...

【Java技术指南】「JPA编程专题」让你不再对JPA技术中的“持久化型注解”感到陌生了

JPA编程专题 JPA的介绍JPA的介绍分析JPA注解总览JPA实体型注解EntityTableTableGeneratorTableGenerator 属性 Temporal TransientColumnColumn 属性ColumnUniqueConstraint属性状态 VersionVersion Embeddable 和 EmbeddedEmbedded EmbeddedIdMappedSuperclassEntityListeners…...

Java基础:IO流有哪些,各有什么特点和功能

具体操作分成面向字节(Byte)和面向字符(Character)两种方式。 如下图所示&#xff1a; IO流的三种分类方式 IO流的层次结构 IO流的常用基类有&#xff1a; 字节流的抽象基类&#xff1a;InputStream和OutputStream&#xff1b; 字符流的抽象基类&#xff1a;Reader和Writer…...

MySQL、PostgreSQL、Oracle、SQL Server数据库触发器实现同步数据

数据库触发器是一种在数据库中设置的程序&#xff0c;当满足某些特定条件时&#xff0c;它会自动执行。触发器通常与数据表的操作&#xff08;例如插入、更新和删除&#xff09;相关联&#xff0c;它们可以帮助保证数据的完整性和一致性。在本篇博客中&#xff0c;我将介绍各种…...

因为我没交周报,leader要罚款200元,怎么给他挖坑?能以敲诈勒索罪告他吗?...

没交周报就罚款&#xff0c;这种事你们遇到过吗&#xff1f; 一位网友说&#xff1a;leader在群里通知不交周报就罚款&#xff0c;这周罚到他头上&#xff0c;要罚款200元&#xff0c;这种情况怎么办&#xff1f;能定他一个敲诈勒索罪或者抢劫罪吗&#xff1f;最差也要在离职后…...

java跨域问题

什么是跨域&#xff1f; 跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com页面去请求www.google.com的资源。但是一般情况下不能这么做&#xff0c;他是由浏览器的同源策略造成的&#xff0c;是浏览器对JavaScript施加的安全限制。 跨域的严格定义是&…...

故障重现, JAVA进程内存不够时突然挂掉模拟

背景&#xff0c;服务器上的一个JAVA服务进程突然挂掉&#xff0c;查看产生了崩溃日志&#xff0c;如下&#xff1a; # Set larger code cache with -XX:ReservedCodeCacheSize # This output file may be truncated or incomplete. # # Out of Memory Error (os_linux.cpp:26…...

数画-AI绘画-免费的人工智能AI绘画网站

文章目录 AIGC什么是AI作画&#xff1f;Prompt数画AIGC的未来发展结语 AIGC AIGC&#xff08;AI Generated Content&#xff09;是指利用人工智能生成内容。是利用人工智能来生成你所需要的内容&#xff0c;GC的意思是创作内容。与之相对应的概念中&#xff0c;比较熟知的还有P…...

ElasticSearch安装、启动、操作及概念简介

ElasticSearch快速入门 文件链接&#xff1a;https://pan.baidu.com/s/15kJtcHY-RAY3wzpJZIn4-w?pwd0k5a 提取码&#xff1a;0k5a 有些软件对于安装路径有一定的要求&#xff0c;例如&#xff1a;路径中不能有空格&#xff0c;不能有中文&#xff0c;不能有特殊符号&#xf…...

Linux用户管理

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 前言 努力是最好的捷径! 目录 1.Linux基于用户身份对…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...