ajax 的入门案例

news/2024/11/30 18:29:10/

一、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);
}

http://www.ppmy.cn/news/45426.html

相关文章

出口欧盟认证机构为什么推荐CE认证

产品做CE证书要什么好处&#xff0c;CE证书要什么作用&#xff1f; 在中国很多中小企业困扰的是&#xff0c;好不容易走出国门接到来自国外的订单。却因为没有相应的产品安全认证而无法顺利取得订单。或者当产品到达目的地后&#xff0c;因为无法提供相应的产品安全认证证明文件…

【Leetcode -205.同构字符串 -228.汇总区间】

Leetcode Leetcode - 205.同构字符串Leetcode - 228.汇总区间 Leetcode - 205.同构字符串 题目&#xff1a;给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。 每个出现的字符…

设计模式:外观模式

一、定义 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行&#xff0c;隐藏系统的复杂性&#xff0c;并向客户端提供了一个客户端可以访问系统的接口。 二、角色 Facade&#xff1a;系统对外的统一接口&#xff0c;客户端连接子系统功能的入口SubSystem子系统…

前端配置项

默认下载安装所需插件的时候会自动添加配置&#xff0c;但有时候可能需要自己去配&#xff0c;比如系统重装&#xff08;重装的是C盘&#xff0c;系统变量会丢失&#xff0c;软件在其他盘符并不需要重新下载&#xff09;。 前端开发涉及到需要配置变量的软件有&#xff1a;git…

Ps 毛玻璃效果

哈喽&#xff0c;各位小伙伴&#xff01;今天我们来学习一下如何制作毛玻璃效果&#xff1f; 复制图层 导入一张图片&#xff0c;Ctrlj复制一层&#xff0c;右键—智能对象&#xff08;目的&#xff1a;方便后期更换图片&#xff09; 画矩形 画矩形(不要描边)&#xff0c;…

day10 线程池及gdb调试多线程

目录 线程池的概念 概念&#xff1a; 必要性&#xff1a; 线程池的基本结构&#xff1a; 线程池的实现 完整代码 线程的GDB调试 线程池的概念 概念&#xff1a; 通俗的讲就是一个线程的池子&#xff0c;可以循环的完成任务的一组线程集合&#xff1b; 必要性&#xff…

Spring Security 权限控制

Spring Security 是一个为 Java 应用程序提供身份验证和授权功能的强大框架。其中一个核心特性就是能够为特定的资源强制执行权限和访问控制规则。本文将探讨 Spring Security 权限控制的场景、使用和实现原理。 场景 Spring Security 权限控制可以用于多种场景&#xff0c;其…

p74 应急响应-winlinux 分析后门勒索病毒攻击

数据来源 操作系统(windows,linux)应急响应&#xff1a; 常见危害&#xff1a;暴力破解&#xff0c;漏洞利用&#xff0c;流量攻击&#xff0c;木马控制(Webshell,PC 木马等)&#xff0c;病毒感染(挖矿&#xff0c;蠕虫&#xff0c;勒索等)常见分析&#xff1a;计算机账户&…