jQuery入门(五)Ajax和json

news2024/11/13 15:24:49

一、Ajax 简介

        AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML。  本身不是一种新技术,而是多个技术综合。用于快速创建动态网页的技术。 一般的网页如果需要更新内容,必需重新加载个页面。 而 AJAX 通过浏览器与服务器进行少量数据交换,就可以使网页实现异步更新。也就是在不重新加载整个页 面的情况下,对网页的部分内容进行局部更新。

同步和异步的区别如下图:

二、jQuery实现Ajax

        1)JQuery的GET方式实现AJAX

核心语法:$.get(url,[data],[callback],[type]); 

- url:请求的资源路径。
- data:发送给服务器端的请求参数,格式可以是key=value,也可以是 js 对象。
- callback:当请求成功后的回调函数,可以在函数中编写我们的逻辑代码。 
- type:预期的返回数据的类型,取值可以是 xml, html, js, json, text等

示例代码: 用户注册异步get请求验证用户名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
<body>
    <form autocomplete="off">
        姓名:<input type="text" id="username">
        <span id="uSpan"></span>
        <br>
        密码:<input type="password" id="password">
        <br>
        <input type="submit" value="注册">
    </form>
</body>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
    //1.为用户名绑定失去焦点事件
    $("#username").blur(function () {
        let username = $("#username").val();
        //2.jQuery的GET方式实现AJAX
        $.get(
            "userServlet",//请求的资源路径
            "username=" + username, //请求参数
            function (data) {  //回调函数
                //将响应的数据显示到span标签
                $("#uSpan").html(data);
            },
            "text"//响应数据形式
        );
    });
</script>
</html>

                2)JQuery的POST方式实现AJAX

**核心语法:**$.post(url,[data],[callback],[type]); 

- url:请求的资源路径。
- data:发送给服务器端的请求参数,格式可以是key=value,也可以是 js 对象。 
- callback:当请求成功后的回调函数,可以在函数中编写我们的逻辑代码。
- type:预期的返回数据的类型,取值可以是 xml, html, js, json, text等。

示例代码:用户注册异步post请求验证用户名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
<body>
    <form autocomplete="off">
        姓名:<input type="text" id="username">
        <span id="uSpan"></span>
        <br>
        密码:<input type="password" id="password">
        <br>
        <input type="submit" value="注册">
    </form>
</body>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
    //1.为用户名绑定失去焦点事件
    $("#username").blur(function () {
        let username = $("#username").val();
        //2.jQuery的POST方式实现AJAX
        $.post(
            //请求的资源路径
            "userServlet",
            "username=" + username, //请求参数
            function (data) {//回调函数
                $("#uSpan").html(data); //将响应的数据显示到span标签
            },
            "text"//响应数据形式
        );
    });
</script>
</html>

JQuery的通用方式实现AJAX

**核心语法:**$.ajax({name:value,name:value,…}); 

- url:请求的资源路径。
- async:是否异步请求,true-是,false-否 (默认是 true)。
- data:发送到服务器的数据,可以是键值对形式,也可以是 js 对象形式。
- type:请求方式,POST 或 GET (默认是 GET)。
- dataType:预期的返回数据的类型,取值可以是 xml, html, js, json, text等。 
- success:请求成功时调用的回调函数。
- error:请求失败时调用的回调函数。

示例代码:用户注册异步Ajax post请求验证用户名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
<body>
    <form autocomplete="off">
        姓名:<input type="text" id="username">
        <span id="uSpan"></span>
        <br>
        密码:<input type="password" id="password">
        <br>
        <input type="submit" value="注册">
    </form>
</body>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
    //1.为用户名绑定失去焦点事件
    $("#username").blur(function () {
        let username = $("#username").val();
        //2.jQuery的通用方式实现AJAX
        $.ajax({
            url:"userServletxxx",//请求资源路径
            async:true, //是否异步
            data:"username="+username, //请求参数
            type:"POST", //请求方式
            dataType:"text", //数据形式
            success:function (data) { //请求成功后调用的回调函数
                $("#uSpan").html(data);//将响应的数据显示到span标签
            },
            error:function () { //请求失败后调用的回调函数
                alert("操作失败...");
            }
        });
    });
</script>
</html>

上述Ajax请求用到的servlet代码:


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/userServlet")
public class UserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置请求和响应的乱码
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=UTF-8");

        //1.获取请求参数
        String username = req.getParameter("username");

        //模拟服务器处理请求需要5秒钟
        /*try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }*/

        //2.判断姓名是否已注册
        if("zhangsan".equals(username)) {
            resp.getWriter().write("<font color='red'>用户名已注册</font>");
        }else {
            resp.getWriter().write("<font color='green'>用户名可用</font>");
        }
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }
}

三、JSON的简介

 1、JSON简介

        JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的 提升网络传输效率。

2、创建格式:

对象类型:

{name:value,name:value,...}
示例代码:

{"city":"北京","date":"2088-08-08","shidu":"22%","wendu":"10~23"}

数组集合类型:

[{name:value,...},{name:value,...}]
 

混合类型:

{name:[{name:value,...},{name:value,...}]}

3、常用方法:

        1)stringify(对象)作用:将指定对象转换成json格式字符串

        2)parse(字符串)作用:将指定json格式字符串解析成对象


        我们除了可以在 JavaScript 中来使用 JSON 以外,在 JAVA 中同样也可以使用 JSON。 JSON 的转换工具是通过 JAVA 封装好的一些 JAR 工具包。 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。

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

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

相关文章

一篇文章读懂抖音短视频矩阵系统:核心功能与优势分析

抖音短视频矩阵系统作为当下备受欢迎的内容创作与分发平台&#xff0c;已经吸引了大量用户和创作者的关注。本文将详细介绍抖音短视频矩阵系统的核心功能与优势&#xff0c;帮助您全面了解这一强大的内容创作工具。 1. 抖音短视频矩阵系统 抖音短视频矩阵系统是一个集创作、编…

【Hot100】LeetCode—287. 寻找重复数

目录 题目1- 思路2- 实现⭐287. 寻找重复数——题解思路 3- ACM 实现 题目 原题连接&#xff1a;287. 寻找重复数 1- 思路 快慢指针 2- 实现 ⭐287. 寻找重复数——题解思路 class Solution {public int findDuplicate(int[] nums) {int slow nums[0];int fast nums[0];//…

DB-Engines Ranking 2024年8月数据库排行

DB-Engines Ranking 2024年8月数据库排行 DB-Engines排名根据数据库管理系统的受欢迎程度进行排名。排名每月更新一次。 2024年8月&#xff0c;共有423个数据库进入排行。 排行榜 前15名趋势图 关系型数据库前 10 名 键值数据库前 10 名 文档数据库前 10 名 时序数据库前 10 …

从0到1:构建高性能的视频美颜SDK和直播美颜插件

本篇文章&#xff0c;笔者将探讨如何从0到1&#xff0c;构建一个高性能的视频美颜SDK和直播美颜插件&#xff0c;助力开发者打造出色的产品。 1.需求分析与技术选型 通常情况下&#xff0c;视频美颜功能需要包括基础的滤镜效果、磨皮美白、面部特征优化等。这些功能既要保证实…

C++入门级文章

一、一个用于查询C标准库内函数、操作符等的链接 https://legacy.cplusplus.com/reference/ 声明&#xff1a;该文档并非官方文档&#xff0c;但其具有易于查询和使用的优势&#xff0c;足够日常使用。 二、C的第一个程序 1、C语言中的语法在C中仍旧适用&#xff0c;首先我们来…

书生大模型学习笔记 - Python

Python实现wordcount 请实现一个wordcount函数&#xff0c;统计英文字符串中每个单词出现的次数。返回一个字典&#xff0c;key为单词&#xff0c;value为对应单词出现的次数。 解题思路&#xff1a;首先把字母转小写>然后把单词取出来去除标点>循环单词列表>key已存…

老板让你点评网页UI,你却不知道如何说起……

当评价网页UI设计时&#xff0c;可以参考以下几个标准&#xff1a; 1. 一致性&#xff08;Consistency&#xff09;&#xff1a; 一个优秀的网页UI应该保持一致性&#xff0c;即在整个网页中使用相同的设计元素和样式&#xff0c;如颜色、字体、按钮样式等。这样可以增加用户…

2024年【北京市安全员-B证】新版试题及北京市安全员-B证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证新版试题考前必练&#xff01;安全生产模拟考试一点通每个月更新北京市安全员-B证模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过北京市安全员-B证作业考试题库很简单。 1、【多选题】…

Html实现全国省市区三级联动

目录 前言 1.全国省市区的Json数据 2.找到Json数据文件(在此博文绑定资源)之后&#xff0c;放到resource目录下。 3.通过类加载器加载资源文件&#xff0c;读取Json文件 3.1 创建JsonLoader类 3.2 注入JsonLoader实体&#xff0c;解析Json文件 4.构建前端Html页面 5.通过…

至尊雄心:成为不甘平庸的男人,掌握顶级赢家思维

至尊雄心&#xff1a;成为不甘平庸的男人&#xff0c;掌握顶级赢家思维 嘿&#xff0c;伙计们&#xff01;如果你是个有抱负的男人&#xff0c;或者你想要成为一个有成就的男人&#xff0c;那么这篇文章就是为你量身定做的。这里&#xff0c;我们将一起探讨那些顶级赢家的思维…

开源蓝牙协议栈-Zephyr Bluetooth

关于Zephyr的介绍&#xff0c;参考&#xff1a; https://blog.csdn.net/2201_75889983/article/details/129366754 Zephyr最初是由Wind River公司开发的一个微内核&#xff0c;在2016年的时候成为Linux基金会维护的一个项目&#xff0c;发展至今&#xff0c;已经成为了一个功能…

国内访问github出现无法访问,用Watt Toolkit加速

文章目录 前置1. 访问github出现“无法访问...”2. 安装Watt Toolkit点击下载接受并下载下载渠道 Watt Toolkit 就绪侧栏“网络加速”下拉滚动条勾选github&#xff0c;点右上“一键加速”再次访问 github.com ,可以访问 前置 准备好微软账号 1. 访问github出现“无法访问…”…

vulnhub靶机:Tomato

目录 靶机导入 信息收集 发现 IP 目录扫描 端口扫描 访问 web 漏洞利用 方法1&#xff1a;报错连接拿 shell 方法2&#xff1a; 使用python3进行反弹shell 提权 靶机导入 tomato 下载地址&#xff1a;Tomato: 1 ~ VulnHub 信息收集 发现 IP arp-scan -l 发现靶机 IP…

【Qt】QMainWindow之菜单栏

目录 一.菜单栏 1.概念 2.组成 二.代码创建菜单栏 1.创建菜单栏 2.在菜单栏中添加菜单 3.在菜单中添加菜单项 三.图形化创建菜单栏 1.在打开Qt自带的ui文件界面后&#xff0c;得到以下界面 2.双击点击界面中&#xff08;在这里输入&#xff09;&#xff0c;在菜单栏中进行…

【开端】JAVA日志框架LogFactory

熟悉的一行代码 private static final Log logger LogFactory.getLog(Application.class); 这一行代码就是使用了LogFactory日志框架&#xff0c;对类Application&#xff0c;进行日志输出。 private static final 这里表示虚拟机启动后就创建一个最终的日志对象Log logger 创…

MySQL学习(18):触发器

1.什么是触发器 *触发器是在 insert/update/delete 之前或之后&#xff0c;触发并执行触发器中定义的SQL语句集合。 *日志记录&#xff0c;数据校验等操作使用别名 OLD 和 NEW 来引用触发器中发生变化的记录内容。OLD引用的是触发器变化前的内容&#xff0c;NEW引用的是触发…

鸿蒙Flex布局

效果&#xff1a; 代码&#xff1a; 换行代码参数设置&#xff1a; wrap:FlexWrap.Wrap Entry Component struct FlexCase {State message: string Hello World;build() {Flex({direction:FlexDirection.Row,justifyContent:FlexAlign.SpaceAround,alignItems:ItemAlign.Cen…

QT和Electron之争,谁才是王者,看看界面判断下

QT 和 Electron 都是用于开发跨平台应用程序的框架&#xff0c;但很难简单地判定谁是“王者”&#xff0c;因为它们各有优劣&#xff0c;适用于不同的场景和需求。 QT 是一个成熟的 C 框架&#xff0c;具有以下优点&#xff1a; 性能出色&#xff1a;由于是基于 C 开发&#…

Eureka详解:解锁微服务架构中的服务发现与注册超能力!

Eureka是一款由Netflix开源的服务发现框架&#xff0c;主要用于微服务架构中的服务注册与发现。在使用Eureka时&#xff0c;涉及到配置Eureka Server、配置Eureka Client、服务注册与发现等步骤。 Eureka服务端配置&#xff1a; 引入依赖&#xff1a;在项目的pom.xml文件中添加…

【秋招笔试】24-07-27-OPPO-秋招笔试题(研发岗)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 💡本套卷的题目都是计数相关的题,对这方…