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

AJAXJSON入门篇

AJAX&JSON

  • 概念:AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML

  • AJAX作用:

    • 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据

      • 使用了AJAX和服务器进行通信,就可以使用HTML+AJAX来替换JSP页面了

      请添加图片描述

    • 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用验,等等.…

      请添加图片描述

AJAX快速入门

  • 编写AjaxServlet,并使用response输出字符串

  • 创建XMLHttpRequest对象:用于和服务器交换数据

    var xmlhttp;
    if (window.XMLHttpRequest){//code for IE7+,Firefox,Chrome,Opera,Safarixmlhttp = new XMLHttpRequest();
    }else{// code for IE6,IE5xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
  • 向服务器发送请求

    xmlhttp.open("GET","url"); //这里url必须写全路径http://...
    mlhttp.send(); //发送请求
    
  • 获取服务器响应数据

    xmlhttp.onreadystatechange = function (){if(xmlhttp.readyState ==4 && xmlhttp.status ==200){alert(xmlhttp.responseText);}
    }
    

案例

使用AJAX验证用户名是否存在

需求:在完成用户注册时,当用户名输入框失去焦点时,校验用户名是否在数据库已存在

前端代码如下:

// 1.给用户名输入框绑定光标失去焦点事件onblur
// 2.发送ajax请求,携带username参数
// 3.处理响应:是否显示提示信息
//1.给用户名输入框绑定失去焦点事件
document.getElementById("username").onblur = function (){//2.发送ajax请求//获取用户名的值var username = this.value;//2.1.创建核心对象var xhttp;if (window.XMLHttpRequest){xhttp = new XMLHttpRequest();}else{// code for IE6,IE5xhttp = new Activexobject("Microsoft.XMLHTTP");}//2.2.发送请求xhttp.open("GET","http://localhost:8080/ajax-demo/selectUserServlet?username="+username);xhttp.send();//2.3.获取响应xhttp.onreadystatechange = function(){if (this.readystate == 4 && this.status == 200){//alert(this.responseText);//判断if(this.responseText ="true"){//用户名存在,显示提示信息document.getElementById("username_err").style.display ='';}else{//用户名不存在·清楚提示信息document.getElementById("username_err").style.display = 'none';}}};
}

Axios异步框架

  • Axios对原生的AJAX进行封装,简化书写
  • 官网:Axios中文文档 | Axios中文网 (axios-http.cn)
快速入门
  • 引入axios的js文件

    <script src="js/axios-0.18.0.js"></script>
    
  • 使用axios发送请求,并获取响应结果

    axios({method:"get",url:"http://localhost:8080/ajax-demo1/aJAXDemo1?username=zhangsan"
    }).then(function (resp){alert(resp.data);
    });axios({method:"post",url:"http://localhost:8080/ajax-demo1/aJAXDemo1",data:"username=zhangsan"
    }).then(function (resp){alert(resp.data);
    });
    
Axios请求方式别名

为了方便起见,Axos已经为所有支持的请求方法提供了别名,修改过后会变成:

// 发送get请求
axios.get("url").then(function (resp){alert(resp.data);
});// 发送post请求
axios.post("ur","参数").then(function (resp){alert(resp.data);
});

JSON

  • 概念:JavaScript Object Notation。JavaScript对象表示法
  • 由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输
JSON基础语法
  • 定义

    var变量名={"key1":value1,"key2":value2,...};
    
  • 示例

    var json = {"name":"zhangsan","age":23,"addr":["北京""上海""西安"]};
    
  • 获取数据

    变量名.key
    json.name
    
JSON数据和Java对象转换

Fastjson是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库,是目前Java语言中最快的JSON
库,可以实现Java对象和SON字符串的相互转换。

使用:

  • 导入坐标

    <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version>
    </dependency>
    
  • Java对象转JSON

    String jsonStr = JSON.toJSONString(obj);
    
  • JSON字符串转ava对象

    User user = JSON.parseObject(jsonStr,User.class);
    
案例

使用Axios+JSON完成品牌列表数据查询

 <script>//1.当页面加我完成后,发送ajax请求window.onload = function (){//2.发送ajax清求axios({method:"get",url:"http://localhost:8080/brand-demo/selectAllServlet"}).then(function (resp){//获取数据let brands = resp.data;let tableData ="<tr>\n"+"			<th>序号</th>\n" +"			<th>品牌名称</th>\n" +"			<th>企业名称</th>\n" +"			<th>排序</th>\n" +"			<th>品牌介绍</th>\n" +"			<th>状态</th>\n" +"			<th>操作</th>\n" +"			</tr>";for(let i = 0;i< brands.Length; i++){let brand brands[i];tableData += "\n" +"	<tr align=\"center\">\n" +"	<td>" + (i+1) + "</td>\n" +"	<td>" + brand.brandName + "</td>\n" +"	<td>" + brand.companyName + "</td>\n" +"	<td>" + brand.ordered + "</td>n" +"	<td>" + brand.description + "</td>\n" +"	<td>" + brand.status + "</td>\n" +"\n" +"	<td><a href=\"#\">修改</a><a href=\"#\">删除</a></td>\n" +"	</tr>";}})}
</script>

后端代码:

// doGet代码
//1.调用Service查询
List<Brand> brands = brandService.selectAll();
//2.将集合转换为JS0N数据 序列化
String jsonString = JSON.toJSoNString(brands);
//3.响应数据
response.setcontentType("text/json;charset=utf-8");
response.getWriter().write(jsonstring);

如果觉得文章对您有帮助,请帮忙点赞或者收藏,如果在文章中发现什么错误或不准确的地方,欢迎与我交流。

相关文章:

AJAXJSON入门篇

AJAX&JSON 概念&#xff1a;AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML AJAX作用&#xff1a; 与服务器进行数据交换&#xff1a;通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应的数据 使用了AJAX和服务器进行通信&#xff0c;就可以使用H…...

代码随想录算法训练营29期|day54 任务以及具体安排

第九章 动态规划part11 123.买卖股票的最佳时机III // 版本一 class Solution {public int maxProfit(int[] prices) {int len prices.length;// 边界判断, 题目中 length > 1, 所以可省去if (prices.length 0) return 0;/** 定义 5 种状态:* 0: 没有操作, 1: 第一次买入…...

文件操作相关工具类

目录 1. 文件上传工具类 -- FileUploadUtils 2. 文件处理工具类 -- FileUtils 3. 媒体类型工具类 -- MimeTypeUtils 1. 文件上传工具类 -- FileUploadUtils /*** 文件上传工具类**/ public class FileUploadUtils {private static final Logger log LoggerFactory.ge…...

Spring源码:手写SpringIOC

文章目录 一、分析二、实现1、版本1&#xff1a;实现Bean注入IOC容器&#xff0c;并从容器中获取1&#xff09;定义BeanDefinition2&#xff09;定义BeanDefinition实现类3&#xff09;定义BeanDefinitionRegistry4&#xff09;定义Beanfactory5&#xff09;定义默认Beanfactor…...

【软件设计师】程序猿需掌握的技能——数据流图

作为一个程序员&#xff0c;不仅要具备高水平的程序编码能力&#xff0c;还要是熟练掌握软件设计的方法和技术&#xff0c;具有一定的软件设计能力&#xff0c;一般包括软件分析设计图&#xff08;常见的有数据流图&#xff0c;程序流程图&#xff0c;系统流程图&#xff0c;E-…...

17.3.1 像素处理

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 17.3.1 像素处理 C#处理图像&#xff0c;主要使用到Bitmap 类的 GetPixel方法和SetPixel方法。 Bitmap.GetPixel 方法&#xff1a…...

白话微机:8.解释FPGA以及一些考研面试问题

一. 前言&#xff08;更新世界观&#xff09; 在“微机世界”&#xff0c;普通的城市(单片机)里&#xff0c;人又有一个别的名字叫做“数据”&#xff0c;人有0有1&#xff1b;人们也有住房&#xff0c;这些住房在这个世界叫做“存储器”&#xff1b;地上有路&#xff0c;这些路…...

Kubernetes基础(十八)-k8s存储对象Persistent Volume

1 什么是Persistent Volume&#xff1f; 在容器化应用中&#xff0c;Pod的生命周期是短暂的&#xff0c;当Pod终止时&#xff0c;其中的数据通常也会被销毁。为了解决这个问题&#xff0c;Kubernetes引入了Persistent Volume&#xff08;PV&#xff09;的概念。PV是集群中的一…...

用linux命令将文本格式文件转换为csv文件

文章目录 前言例: 总结 前言 用到linux命令awk 使用 awk 命令来将文本文件转换为 CSV 格式。假设你有一个以空格或制表符分隔的文本文件&#xff0c;以下是将其转换为 CSV 格式的命令&#xff1a; awk BEGIN { OFS"," } { print $1, $2, $3 } input.txt > outpu…...

C++中的binary_search函数详解

C中的std::binary_search函数详解 在C标准模板库&#xff08;STL&#xff09;中&#xff0c;std::binary_search是一个非常有用的函数&#xff0c;它可以在一个已排序的序列中查找一个特定的元素。这个函数的使用非常直观&#xff0c;但是了解其工作原理和一些注意事项可以帮助…...

程序员为什么不喜欢关电脑?我来回答

程序员为什么不喜欢关电脑&#xff1f; 主题&#xff1a; 你是否注意到&#xff0c;程序员们似乎从不关电脑&#xff1f;别以为他们是电脑上瘾&#xff0c;实则是有他们自己的原因&#xff01;让我们一起揭秘背后的原因&#xff0c;看看程序员们真正的“英雄”本色&#xff01…...

波奇学Linux:动静态库

创建静态库 Makefile文件 mymath.c文件 mymath.h文件 编译main.c文件 gcc 编译时会把在系统目录中寻找头文件和库文件&#xff0c;文件不在系统目录中用参数 -I 头文件所在文件夹/ -L 库的地址文件夹 -l除去lib和后缀。 拷贝文件到系统目录即可不用参数 库的安装类似于把头文件…...

1723. 完成所有工作的最短时间

文章目录 题意思路代码 题意 题目链接 K个工人&#xff0c;一共jobs个任务&#xff0c;问怎样分配任务&#xff0c;最短的最长工人完成任务完成时间。 思路 DFS剪枝&#xff08;最大单个工人jobs时间超过ans时间&#xff1b;有限空闲工人拿任务&#xff09;模拟退火dp 代码…...

初始HTTP协议

一、http协议 1、http相关概念 互联网&#xff1a;是网络的网络&#xff0c;是所有类型网络的母集因特网&#xff1a;世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上&#xff0c;大家把连接在因特网上的计算机都成为主机。万维网&#xff1a;WWW&#xff08;…...

C++ 位运算常用操作 二进制中1的个数

给定一个长度为 n 的数列&#xff0c;请你求出数列中每个数的二进制表示中 1 的个数。 输入格式 第一行包含整数 n 。 第二行包含 n 个整数&#xff0c;表示整个数列。 输出格式 共一行&#xff0c;包含 n 个整数&#xff0c;其中的第 i 个数表示数列中的第 i 个数的二进制表…...

大数据领域的数据仓库

在大数据领域&#xff0c;数据仓库&#xff08;Data Warehouse&#xff09;是一个用于存储、管理和分析大量数据的集中式系统。它从多个异构数据源收集数据&#xff0c;对数据进行清洗、转换和整合&#xff0c;然后将其存储在一个集中的位置&#xff0c;以支持复杂的查询、报告…...

sentinel的资源数据指标是如何采集

资源数据采集 之前的NodeSelectorSlot和ClusterBuilderSlot已经完成了对资源调用树的构建, 现在则是要对资源进行收集, 核心点就是这些资源数据是如何统计 LogSlot 作用: 记录异常请求日志, 用于故障排查 public class LogSlot extends AbstractLinkedProcessorSlot<Def…...

算法刷题:找到字符串中所有的字母异位词

找到字符串中所有的字母异位词 .题目链接题目详情题目解析算法原理滑动窗口流程图定义指针及变量进窗口判断出窗口更新结果 我的答案 . 题目链接 找到字符串中所有的字母异位词 题目详情 题目解析 所谓的异位词,就是一个单词中的字母,打乱顺序,重新排列得到的单词 如:abc-&g…...

【Java EE初阶十九】网络原理(四)

4. 数据链路层 数据链路层也有很多种协议&#xff0c;其中一个比较常见常用的,就是“以太网协议”&#xff08;通过网线/光纤, 来通信所使用的协议叫做以太网协议&#xff0c;以太网是横跨数据链路层 物理层&#xff09;&#xff1b; 4.1 以太网数据帧格式 帧头 载荷(IP 数据…...

12.23 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、社招&校招 | 轻舟智航 社招 & 2024校招 社招&校招 | 轻舟智航 社招 & 2024校招 2、校招 | 成都精灵云科技2024校园招聘补录 校招 | 成都精灵云科技2024校园招聘补录 …...

5步打造Windows桌面美学:TranslucentTB任务栏透明化完全指南

5步打造Windows桌面美学&#xff1a;TranslucentTB任务栏透明化完全指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 厌倦了Windows系…...

如何将笔记从 iCloud 传输到 iPhone:分步指南

iPhone 上的“备忘录”应用是一款便捷的工具&#xff0c;可以用来记录待办事项、日记、想法等等。它能帮助我们追踪需要完成的事情。借助 iCloud 的自动同步功能&#xff0c;你的备忘录可以安全地存储在云端&#xff0c;并可通过任何 Apple 设备甚至电脑访问。将笔记从 iPhone …...

不伤身的酒是智商税?这款轻养新标杆打破偏见

1.当“喝酒伤身”成为共识&#xff0c;谁在挑战这个铁律&#xff1f;中国人喝酒的历史&#xff0c;几乎和文明史一样长。但“喝酒伤身”这四个字&#xff0c;也像影子一样&#xff0c;从未离开过酒桌。每一次举杯&#xff0c;耳边总有人念叨&#xff1a;“少喝点”“伤肝”“伤…...

【等保三级Java安全加固实战指南】:20年专家亲授7大高危漏洞修复清单与合规落地路径

第一章&#xff1a;等保三级Java安全加固的合规基线与实施全景图等保三级对Java应用系统提出了覆盖身份鉴别、访问控制、安全审计、通信保密性、代码安全及运行环境防护等多维度强制性要求。其合规基线并非单一技术点的叠加&#xff0c;而是以《GB/T 22239-2019 信息安全技术 网…...

为什么选全屋定制,不买成品柜

1&#xff09;为什么选全屋定制&#xff0c;不买成品柜&#xff1f;​ 成品柜尺寸固定&#xff0c;苏州很多户型飘窗、梁位、管道多&#xff0c;放进去丑、浪费空间&#xff01;我们定制严丝合缝&#xff0c;顶天立地&#xff0c;收纳多 30%&#xff0c;颜值统一&#xff0c;和…...

Vue3 + FFmpeg.wasm 实战:5分钟搞定浏览器端视频格式转换(附完整代码)

Vue3 FFmpeg.wasm&#xff1a;浏览器端视频处理的革命性方案 当现代Web应用越来越依赖多媒体处理能力时&#xff0c;传统依赖后端转码的方案暴露出明显短板&#xff1a;上传耗时、服务器压力大、隐私数据外流风险。而FFmpeg.wasm的出现彻底改变了这一局面——这个基于WebAssem…...

重组胶原蛋白 | 可溶性蛋白 | 蛋白纯化 | 原核与真核系统

在生命科学研究中&#xff0c;重组胶原蛋白&#xff08;Recombinant Collagen&#xff09;作为一种关键的生物大分子&#xff0c;因其独特的结构特点和在细胞外基质研究中的重要性而被广泛关注。一、胶原蛋白分子构成与分类胶原蛋白&#xff08;Collagen&#xff09;是动物体内…...

Gemma-3-12B-IT WebUI惊艳效果:Agent框架设计+Tool Calling实现

Gemma-3-12B-IT WebUI惊艳效果&#xff1a;Agent框架设计Tool Calling实现 1. 引言&#xff1a;当大模型拥有“手”和“眼” 想象一下&#xff0c;你正在和一个非常聪明的助手聊天。它能回答你的问题&#xff0c;帮你写代码&#xff0c;甚至能创作故事。但当你问它“现在几点…...

Linux七大常见误解与真相解析

1. Linux 神话的起源与现状Linux 作为开源操作系统的代表&#xff0c;自1991年诞生以来就伴随着各种误解和神话。这些误解往往源于早期Linux的使用门槛较高、图形界面不够完善等历史原因。但经过30多年的发展&#xff0c;现代Linux发行版已经发生了翻天覆地的变化。在技术社区中…...

终极指南:如何在NixOS上完美打包与使用SilentSDDM主题

终极指南&#xff1a;如何在NixOS上完美打包与使用SilentSDDM主题 【免费下载链接】SilentSDDM A very customizable SDDM theme that actually looks good. 项目地址: https://gitcode.com/gh_mirrors/si/SilentSDDM SilentSDDM是一款高度可定制且视觉精美的SDDM登录主…...