JavaWeb系列二十一: 数据交换和异步请求(JSON, Ajax)

文章目录

  • 官方文档
  • official documents
  • 官方文件
  • 官方文件
  • official documents
  • JSON介绍
  • JSON快速入门
  • JSON对象和字符串对象转换
    • 应用案例
    • 注意事项和细节
  • JSON在java中使用
    • 说明
    • JSON在Java中应用场景
    • 应用实例
  • Ajax基本介绍
    • Ajax是什么
    • Ajax经典应用场景
  • Ajax原理示意图
    • 传统的web应用
    • Ajax原理示意图
  • JavaScript 原生 Ajax 请求
    • Ajax文档
    • 应用实例-验证用户名是否存在
    • 2.6 接入数据库
  • 3.jQuery操作Ajax
    • 3.1 jQuery操作Ajax文档
    • 3.2 jQuery.ajax()函数
    • 3.3 $.get 和 $.post常用参数
    • 3.4 jQuery.ajax()快速入门
    • 3.4 jQuery.get()快速入门
    • 3.5 jQuery.post()快速入门
    • 3.6 jQuery.getJSON快速入门
    • 3.7 接入数据库

在这里插入图片描述

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

@ [ toc ]

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

! (在这里插入图片描述)( https://img-blog.csdnimg.cn/bc597b332d0847d5b8f2169bb4f9cc99.jpeg#pic_center )

官方文档

official documents

官方文件

官方文件

official documents

Json在线文档: https://www.w3school.com.cn/jquery/index.asp

“ Json”在线文档: 【 https://www.w3school.com.cn/jquery/index.asp 】( https://www.w3school.com.cn/jquery/index.asp )

“ Json”在线文档: 【 https://www.w3school.com.cn/jquery/index.asp 】( https://www.w3school.com.cn/jquery/index.asp )

“ Json”在线文档: 【 https://www.w3school.com.cn/jquery/index.asp 】( https://www.w3school.com.cn/jquery/index.asp )

Ajax在线文档: https://www.w3school.com.cn/js/js_ajax_intro.asp

“ Ajax”在线文档: 【 https://www.w3school.com.cn/js/js_ajax_intro.asp 】( https://www.w3school.com.cn/js/js_ajax_intro.asp )

“ Ajax”在线文档: 【 https://www.w3school.com.cn/js/js_ajax_intro.asp 】( https://www.w3school.com.cn/js/js_ajax_intro.asp )

离线文档: W3School离线手册(2017.03.11版)

离线文档: W3学校离线手册(2017.03.11版)

Offline document: W3 School Offline Handbook (version 3.11,2017.03)

在这里插入图片描述

! insert picture description here

JSON介绍

1.JSON 指的是JavaScript对象表示法(JavaScript Object Notation)

2.JSON是轻量级的文本数据交换格式

在这里插入图片描述

3.JSON独立于语言[即java, php, asp.net, go等都可以使用JSON]

4.JSON具有自我描述性, 更易理解. 一句话, 非常的好用.

JSON快速入门

1.JSON的定义格式

var 变量名 = {"k1" : value, //Number类型"k2" : "value", //字符串类型"k3" : [], // 数组类型"k4" : {}, //json对象类型"k5" : [{},{}] //json数组
};
var myJson = {"key1":"赵志伟", //字符串"key2":23, //Number"key3":[1,"hello",3.2], //数组"key4":{"age":23, "name":"赵志伟"}, //json对象"key5":[{"亚丝娜":"我的老婆", "桐谷和人":"我"},{"k1":23, "k2":"zzw"}]
}; 

2.JSON规则解读
1)映射(元素/属性)用冒号 : 表示, “名称”:值, 注意名称是字符串, 因此要用双引号引起来.

2)并列的数据之间用逗号分隔. “名称1”:值, “名称2”:值

3)映射的集合(对象)用大括号 {} 表示. {“名称1”:值, “名称2”:值}

4)并列数据的集合(数组)用方括号 [] 表示. [{“名称1”:值,“名称2”:值},{“名称1”:值,“名称2”:值}]

5)元素值类型: string, number, object, array, true, false, null

3.JSON快速入门案例

1)创建javaweb项目 zzw_json_ajax 参考 IDEA 2022.3开发JavaWeb工程

在这里插入图片描述

2)第三方的包 gson.jar.

3)创建json_quick_start.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>json 快速入门案例</title><script type="text/javascript">/*1.myJson就是一个json对象2.演示如何获取到json对象的属性/key*/var myJson = {"key1": "赵志伟",//字符串"key2": 123,//Number"key3": [1, "hello", 2.3],//数组"key4": {"age": 12, "name": "jack"},//json对象"key5": [//json数组{"k1": 10, "k2": "apple"},{"k3": 30, "k4": "john"}]};//1.取出key1console.log("key1 = " + myJson.key1);console.log("key1 = " + myJson['key1']);//这样也可以//2.取出key3console.log("key3 = " + myJson.key3)//  可以对key3取出的值(Array)进行遍历for (var i = 0; i < myJson.key3.length; i++) {//使用模板字符串console.log(`${i}个元素的值是 ${myJson.key3[i]}`);}//3.取出key4console.log("key4 = ", myJson.key4, "key4.name = " + myJson.key4.name);//4.取出key5console.log("key5 = ", myJson.key5, "k4 = " + myJson.key5[1].k4)</script>
</head>
<body>
</body>
</html>

JSON对象和字符串对象转换

应用案例

1.JSON.stringify(json)功能: 将一个json对象转换为json字符串

2.JSON.parse(jsonString)功能: 将一个json字符串转化为json对象

3.应用实例. 创建json_str.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JSON 对象和字符串对象转换</title><script type="text/javascript">//一个 json 对象var jsonObj = {"name": "张三","age": 18,"sex": "男"};//JSON 是一个build-in对象, 内建对象, 有方法可以使用console.log(JSON)//把 json 对象转换成字符串对象var jsonStr = JSON.stringify(jsonObj);console.log(jsonStr);//把 json 对象的字符串, 转换成 json 对象var jsonObj2 = JSON.parse(jsonStr);console.log(jsonObj2);</script>
</head>
<body>
</body>
</html>

注意事项和细节

1.JSON.stringify(json对象)会返回json对象对应的String, 并不会影响原来的json对象.

2.JSON.parse(String)函数会返回对应的json的对象, 并不会影响原来的String.

3.在定义json对象时, 可以使用单引号''表示字符串.

 //比如var personJson = {"name": "赵志伟","age": 23};//也可以写成var personJson = {'name': '赵志伟','age': 23};

4.但是在把原生字符串转成json对象时, 必须使用双引号"", 否则会报错, 比如

var dogStr = "{'name':'喵喵', 'age':1}";//转 json 会报错

5.JSON.stringify(json对象)返回的字符串, 都是双引号""括起来的字符串, 所以在语法格式正确的情况下, 是可以重新转成json对象的.

JSON在java中使用

说明

1.在java中使用json, 需要引入到第三方的包 gson.jar.

2.GsonGoogle提供的用来在Java对象和JSON数据之间进行映射的Java类库.

3.可以对JSON字符串和Java对象相互转换.

JSON在Java中应用场景

1.Javabean对象和json字符串的转换.

2.List对象和json字符串的转换.

3.map对象和json字符串的转换.

4.应用场景示意图

在这里插入图片描述

应用实例

需求: 演示jsonjava程序的使用.

1.引入gson.jar包.

2.新建src/com/zzw/json/Book.java

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book {private Integer id;private String name;
}

3.新建src/com/zzw/json/JavaJson.java

public class JavaJson {public static void main(String[] args) {//引入gson包, 创建一个gson对象, 作为一个工具使用Gson gson = new Gson();//一. 演示 java对象 和 json的转换System.out.println("\n=== 1. java 对象和 json 的转换 ====");Book book = new Book(100, "java编程思想");//1.把 java对象 转成 json字符串String bookStr = gson.toJson(book);System.out.println("bookStr = " + bookStr);//2.把 json字符串 转成 java对象//解读: bookStr就是json字符串, Book.class指定将json字符串转成Book对象//底层是反射机制Book book2 = gson.fromJson(bookStr, Book.class);System.out.println("book2 = " + book2);//二. 演示 List集合 和 json的转换System.out.println("\n======2. List 集合和 json 的转换======");List<Book> bookList = new ArrayList<>();bookList.add(new Book(200, "python编程思想"));bookList.add(new Book(300, "C++编程思想"));//1.把 list集合 转成 json字符串//解读: 因为把一个 对象/集合 转成字符串, 相对比较简单//底层只需要遍历, 获取对象的属性, 按照json格式拼接返回即可String bookListStr = gson.toJson(bookList);System.out.println("bookListStr = " + bookListStr);//2.把 json字符串 转成 list集合/*** 解读* (1)如果需要把 json字符串 转成 集合 这样复杂的类型, 需要使用gson提供的一个类* (2)TypeToken, 是一个自定义泛型类, 然后通过TypeToken来指定我们需要转换成的类型* public class TypeToken<T> {*     final Class<? super T> rawType;*     final Type type;*     final int hashCode;*     protected TypeToken() {*         this.type = getSuperclassTypeParameter(this.getClass());*         this.rawType = Types.getRawType(this.type);*         this.hashCode = this.type.hashCode();*     }* }* (3)返回的是类型的完整路径: java.util.List<com.zzw.json.Book>* (4)gson的设计者, 需要得到类型的完整路径, 然后在底层进行反射* (5)所以gson设计者就提供了TypeToken来搞定.*** 二说TypeToken [为什么要添加{}, 涉及到内部类..]* (1)如果我们这样写 new TypeToken<List<Book>>().getType();* 会提示: 'TypeToken()' has protected access in 'com.google.gson.reflect.TypeToken* (2)因为TypeToken的无参构造方法, 是一个protected的*    , 所以不能直接new, 而new TypeToken<List<Book>>()就是调用其无参构造方法* (3)根据java基础, 如果一个方法是protected, 而且不在同一个包, 是不能直接访问的, 所以报错* (4)为什么 new TypeToken<List<Book>>() {}.getType() 这样使用就可以, 这涉及到匿名内部类的使用* (5)当new TypeToken<List<Book>>() {}这样使用, 返回类型就不再是TypeToken, 而是匿名内部类[可以看作是TypeToken的子类]* (6)而且这个匿名内部类是有自己的无参构造器的(隐式), 根据java基础, 当执行子类无参构造器时, 默认先执行super();** 三说TypeToken [对java基础回顾]* class JabaBean$1 extends com.google.gson.reflect.TypeToken<List<Book>> {*      public JabaBean$1() {*          super();*      }* }* TypeToken<List<Book>> typeToken = new JabaBean$1();* typeToken.getType();*/TypeToken<List<Book>> typeToken = new TypeToken<List<Book>>() {};System.out.println("typeToken = " + typeToken.getClass());//typeToken = class com.zzw.json.JavaJson$1List<Book> bookList2 = gson.fromJson(bookListStr, typeToken.getType());System.out.println("bookList2 = " + bookList2);//三. 演示 Map集合 和 json的转换System.out.println("\n======3. Map 集合和 json 的转换======");Map<String, Book> bookHashMap = new HashMap<>();bookHashMap.put("no1", new Book(400, "JavaScript编程思想"));bookHashMap.put("no2", new Book(500, "Go编程思想"));//(1)把 map集合 转成 json字符串String bookMapStr = gson.toJson(bookHashMap);System.out.println("bookMapStr = " + bookMapStr);//(2)把 json字符串 转成 map集合Type type = new TypeToken<Map<String, Book>>() {}.getType();Map<String, Book> bookHashMap2 = gson.fromJson(bookMapStr, type);System.out.println("bookHashMap2 = " + bookHashMap2);}
}

测试.

Ajax基本介绍

Ajax是什么

1.AJAXAsynchronous Javascript And XML(异步 JavaScriptXML)

2.AJAX是一种浏览器异步发起请求(可以指定发送哪些数据), 局部更新页面的技术

Ajax经典应用场景

1.搜索引擎根据用户输入的关键字, 自动提示检索关键字

2.动态加载数据, 按需取得数据 [树形菜单, 联动菜单…]

3.改善用户体验 [输入内容前提示, 带进度条文件上传…]

4.电子商务应用 [购物车, 邮件订阅…]

5.访问第三方服务 [访问搜索服务, rss阅读器]

6.页面局部刷新 https://piaofang.maoyan.com/dashboard

Ajax原理示意图

传统的web应用

●一图胜千言
在这里插入图片描述

Ajax原理示意图

在这里插入图片描述

JavaScript 原生 Ajax 请求

Ajax文档

在线文档: https://www.w3school.com.cn/js/js_ajax_intro.asp

离线文档: W3School离线手册(2017.03.11版)

应用实例-验证用户名是否存在

●需求
演示 javascript 发送原生 ajax 请求的案例.

●思路分析
1.在输入框输入用户名
2.点击验证用户名, 使用 ajax 方式, 服务端验证该用户名是否已经被占用了, 如果该用户已经被占用, 以 json 格式返回该用户信息.
3.假定用户名为 king 就不可用, 其他用户名可以.
4.对页面进行局部刷新, 显示返回信息.
5.小思考: 为什么直接返回用户名是否可用的信息. 完成案例,再思考.

在这里插入图片描述

简单地思路分析: 程序框架图 => 先思考 -> 走代码

在这里插入图片描述

●代码实现

1.引入servlet-api.jar包

2.创建src/com/zzw/json/User.java

public class User {private String name;private String pwd;//getter, setter, toString, 全参构造方法
}

3.创建src/com/zzw/ajax/CheckUserServlet.java

public class CheckUserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String username = request.getParameter("username");System.out.println("ajax 请求 username=" + username);response.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();//假定 king 这个用户名已经被占用,其它可以使用//占用的话, 我们就返回 king 这个用户对应的 json字符串if ("king".equals(username)) {User user = new User("king", "123");writer.print(new Gson().toJson(user));} else {writer.print("未被占用");}writer.flush();writer.close();}
}

配置web.xml

<servlet><servlet-name>CheckUserServlet</servlet-name><servlet-class>com.zzw.ajax.CheckUserServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>CheckUserServlet</servlet-name><url-pattern>/checkUser</url-pattern>
</servlet-mapping>

4.创建web/login.html


2.发送ajax请求[http请求]
在这里插入图片描述
3.后台接收并返回json格式的数据
在这里插入图片描述
4.前端得到数据, 通过dom操作, 进行页面局部刷新
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.测试
在这里插入图片描述
在这里插入图片描述

2.6 接入数据库

引入数据库进行验证

项目结构 粘贴自满汉楼项目
在这里插入图片描述
1.思维框架图
在这里插入图片描述
在这里插入图片描述
2.User实体类-无参构造器
在这里插入图片描述
3.UserDAO
在这里插入图片描述
4.UserService
在这里插入图片描述
5.CheckUserServlet
在这里插入图片描述
在这里插入图片描述
6.发现错误
在这里插入图片描述
解决方案
src是se方式下的路径, javaweb要用到类加载器
在这里插入图片描述
7.测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.jQuery操作Ajax

1.编写原生的Ajax要写很多的代码, 要考虑浏览器兼容的问题
2.在实际工作中, 一般使用JavaScript的库(比如Jquery)发送Ajax请求

3.1 jQuery操作Ajax文档

1.在线文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.离线文档在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 jQuery.ajax()函数

1.$.ajax常用函数

$.ajax常用函数的位置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • url: 请求的地址
    在这里插入图片描述
  • type: 请求的方式get或post
    在这里插入图片描述
  • data: 发送到服务器的数据, 将自动转换为请求字符串格式
    在这里插入图片描述
  • success: 成功的回调函数
    在这里插入图片描述
  • error: 失败的回调函数
    在这里插入图片描述
  • dataType: 返回的数据类型 常用json和text
    在这里插入图片描述

3.3 $.get 和 $.post常用参数

  • url: 请求的URL地址
  • data: 请求发送到服务器的数据
  • success: 成功时回调函数
  • type: 返回内容格式, xml.html.script.json.text

说明: $.get和$.post底层还是使用$.ajax()方法来实现异步请求
在这里插入图片描述
在这里插入图片描述

3.4 jQuery.ajax()快速入门

1.在web路径/scrpit下引入jquery后, Rebuild Project一下
在这里插入图片描述
2.发送ajax请求[http请求]
在这里插入图片描述
3.后台接收并返回json格式的数据
在这里插入图片描述
4.测试
回显乱码
在这里插入图片描述
解决方案
在这里插入图片描述
在这里插入图片描述

1.后台接收并返回数据
在这里插入图片描述
2.前端获取
在这里插入图片描述
在这里插入图片描述
3.前端判断
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
4.在div中显示内容
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述

3.4 jQuery.get()快速入门

1.$.get()默认是get请求, 不需要再指定请求方式
2.不需要指定参数名
3.填写的实参, 是顺序的: url—data—success回调函数—dataType
4.没有提供error接口, 可以在success回调函数里根据status判断

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

3.5 jQuery.post()快速入门

操作: 只需把$.get改成$.post

$.post和$.get的方式一样, 只是这时, 是按照post方法发送ajax请求[本质是http请求]

1.$.post()默认是post请求, 不需要再指定请求方式
2.不需要指定参数名
3.填写的实参, 是顺序的: url—data—success回调函数—dataType
4.没有提供error接口, 可以在success回调函数里根据status判断

$.post("/ajax/checkUserServlet2",{username: $("#username").val(),date: new Date() //built-in},function (data, status, xhr) {//成功后的回调函数console.log("$.post()请求成功");console.log("data=", data);console.log("status=", status);console.log("xhr=", xhr);//data是json对象,如果要显示-转成字符串$("#div").html(JSON.stringify(data));//对返回的结果进行处理if ("" == data.name) {$("#message").val("该用户名可用");} else {$("#message").val("该用户名不可用");}},"json"
)

在这里插入图片描述
在这里插入图片描述

3.6 jQuery.getJSON快速入门

四种格式

     var usernameValue = $(this).val();$.getJSON(//这里尽量准确, 一把确定[复制粘贴]"memberServlet", "action=isExistByName&username=" + usernameValue, function (data) {alert(data.isExist);console.log("data= ", data);//显示json格式的数据: 1.要用逗号; 2.要用console.log()}
/*========================================================================================*/"memberServlet?action=isExistByName&username=" + usernameValue, function (data) {alert(data.isExist);console.log("data= ", data);//显示json格式的数据: 1.要用逗号; 2.要用console.log()}
/*========================================================================================*/"memberServlet",{action: "isExistByName",username: usernameValue},function (data) {alert(data.isExist);console.log("data= ", data);//显示json格式的数据: 1.要用逗号; 2.要用console.log()}
/*========================================================================================*/"memberServlet",{"action": "isExistByName","username": usernameValue},function (data) {alert(data.isExist);console.log("data= ", data);//显示json格式的数据: 1.要用逗号; 2.要用console.log()})

$.getJSON常用参数

  • url:请求发送的URL
  • data: 请求发送到服务器的数据
  • success: 请求成功时的回调函数
$.getJSON("/ajax/checkUserServlet2",{username: $("#username").val(),date: new Date() //built-in},function (data, status, xhr) {//成功后的回调函数console.log("$.getJSON()请求成功");console.log("data=", data);console.log("status=", status);console.log("xhr=", xhr);//data是json对象,如果要显示->转成字符串$("#div").html(JSON.stringify(data));//对返回的结果进行处理if ("" == data.name) {$("#message").val("该用户名可用");} else {$("#message").val("该用户名不可用");}},
);

如果你通过jQuery发送的ajax请求[本质是http请求]是get请求, 并且返回的数据格式是JSON, 可以直接使用$.getJSON(). 简洁.
在这里插入图片描述
在这里插入图片描述

3.7 接入数据库

1.接入数据库在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.前端测试 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Vue3打包发布,刷新出现的空白页面和错误

Vue3打包发布出现的错误&#xff1a;Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of text/html. Strict MIME type checking is enforced for module scripts per HTML spec. 第一次点击访问到这个路径&…

粉笔推出国内首个职教行业大模型,助力学员高效学习

7月12日&#xff0c;粉笔正式推出其自主研发的首个专注于职教行业的垂域大模型&#xff0c;并将于8月1日上线粉笔AI老师 “粉笔头”&#xff0c;为学员提供个性化、智能化的辅导服务。 在垂域大模型的基础上&#xff0c;粉笔结合10年来的教研积累、独有数据搭建RAG系统&#x…

使用MAVSDK向PX4模拟器发送启飞与降落指令

1.使用docker启动PX4模拟器 docker run --rm -it jonasvautherin/px4-gazebo-headless:1.14.3 开始启动 启动中 PX4启动成功 创建QGC连接 mavlink start -p -u 14556 -t 192.168.1.66 -o 14550 启动QGC连接PX4模拟器 在QGC中执行各种指令

TensorFlow系列:第五讲:移动端部署模型

项目地址&#xff1a;https://github.com/LionJackson/imageClassification Flutter项目地址&#xff1a;https://github.com/LionJackson/flutter_image 一. 模型转换 编写tflite模型工具类&#xff1a; import osimport PIL import tensorflow as tf import keras import …

电子画册制作全攻略,从零开始制作

在这个数字化时代&#xff0c;电子画册作为一种新型的传播媒介&#xff0c;已经越来越受到人们的青睐。它以生动活泼、互动性强、传播速度快等特点&#xff0c;迅速成为了企业宣传、个人展示的优质选择。那么&#xff0c;如何从零开始制作一款引人入胜的电子画册呢&#xff1f;…

数据结构——(双)链表

文章目录 1. 定义 2. 双链表和单链表的区别 3. 代码示例 3.1 双链表节点和结构定义 3.2 初始化双链表 3.3 返回双链表的长度 3.4 在指定位置插入元素 3.5 在末尾插入元素 3.6 删除指定位置的元素并返回被删除的元素 3.7 删除末尾元素 3.8 获取指定位置的元素 3.9 修…

AI网络爬虫019:搜狗图片的时间戳反爬虫应对策略

文章目录 一、介绍二、输入内容三、输出内容一、介绍 如何批量爬取下载搜狗图片搜索结果页面的图片?以孙允珠这个关键词的搜索结果为例: https://pic.sogou.com/pics? 翻页规律如下: https://pic.sogou.com/napi/pc/searchList?mode=2&start=384&xml_len=48&am…

C语言作业7 指针实现strlen,strcpy,strcmp和strstr功能

1、自定义函数(my_strlen)实现strlen函数的功能 2、自定义函数(my_strcpy)实现strcpy函数的功能 3、自定义函数(my_strcmp)实现strcmp函数的功能 4、自定义函数(my_strcat)实现strcat函数的功能 5、自定义函数(my_strstr)实现求src字符串中是否包含子串dest字符串 #include &l…

【C++】入门基础(一)

目录 一.命名空间&#xff1a;namespace 1.namespace的价值 2.namespace的定义 3.namespace的使用方法 3.1 域解析运算符:: 3.2 using展开 3.3 using域解析运算符 二.输入输出 三.缺省参数 四.函数重载 1.参数类型不同 2.参数个数不同 3.参数顺序不同 一.命名空间&…

开源项目的认识理解

目录 开源项目有哪些机遇与挑战&#xff1f; 1.开源项目的发展趋势 2.开源的经验分享&#xff08;向大佬请教与上网查询&#xff09; 3.开源项目的挑战 开源项目有哪些机遇与挑战&#xff1f; 1.开源项目的发展趋势 1. 持续增长与普及 - 开源项目将继续增长&#xff0c…

从小主机到第一台自组装NAS:升级与优化记录

目录 前言硬件系统安装的波折过程问题解决系统安装 套件/dockerjellyfin 功耗测试刚安装好系统插上缓存盘且运行了更多的套件和 docker 容器之后 温度场景一场景二场景三 后记参考 在使用了一年的小主机 NAS 后&#xff0c;我决定自己组装并安装新 NAS。本文详细记录了硬件选择…

烟雾自动监测报警摄像机

当今社会&#xff0c;安全意识日益增强&#xff0c;各种智能监测技术也在不断创新发展。烟雾自动监测报警摄像机作为其中的一种重要应用&#xff0c;正在为人们的生活和财产安全提供更加全面的保护。烟雾自动监测报警摄像机集成了先进的传感器技术和智能算法&#xff0c;能够高…

图像搜索技术在司法证据分析中的应用:思通数科大模型的创新实践

引言 在司法侦查过程中&#xff0c;图像和视频证据的分析对于案件的侦破至关重要。随着人工智能技术的快速发展&#xff0c;图像搜索技术已成为司法领域的关键工具。本文将探讨如何结合思通数科的大模型&#xff0c;利用图像搜索技术对案件中的图片或视频证据进行深度分析&…

同时用到,网页,java程序,数据库的web小应用

具体实现功能&#xff1a;通过网页传输添加用户的请求&#xff0c;需要通过JDBC来向 MySql 添加一个用户数据 第一步&#xff0c;部署所有需要用到的工具 IDEA(2021.1),Tomcat(9),谷歌浏览器&#xff0c;MySql,jdk(17) 第二步&#xff0c;创建java项目&#xff0c;提前部署数…

ADC 性能规格-静态性能- (2) - 偏移误差( offset error)和满标度增益误差(full scale gain error)

偏移误差(Offset error) 失调(Offset) 定义:失调是指ADC输出数字代码中零位与实际模拟输入零位之间的差异。简单来说,就是当输入信号为零时,ADC输出的数字代码并不一定是零,这个偏差就是失调。影响:失调会影响ADC的整体精度,因为它在整个输入范围内引入了一个固定的偏…

智慧水利引领行业转型:探讨智慧水利解决方案在水务管理、灾害预警及水资源保护中的前沿应用与挑战

本文关键词&#xff1a;智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

ExcelToDB2:批量导入Excel到IBM DB2数据库的自动化工具

ExcelToDB2&#xff1a;批量导入Excel到IBM DB2数据库的自动化工具 简介 ExcelToDB2是一个可以批量导入Excel到IBM DB2数据库的自动化工具。支持将xls/xlsx/xlsm/xlsb/csv/txt/xml格式的Excel文件导入到IBM DB2等多种原生及国产数据库。自动化是其最大的特点&#xff0c;因为它…

MVPT: Multitask Vision-Language Prompt Tuning

摘要 提示调整(Prompt Tuning)是一种针对特定任务的学习提示向量的调节&#xff0c;已成为一种数据高效和参数高效的方法&#xff0c;用于使大型预训练的视觉语言模型适应多个下游任务。然而&#xff0c;现有的方法通常是从头开始独立地学习每个任务的提示向量&#xff0c;从而…

docker-compose安装PolarDB-PG数据库

文章目录 一. Mac1.1 docker-compose.yaml1.2 部署1.3 卸载4. 连接 二. Win102.1 docker-compose.yaml2.2 部署2.3 卸载 参考官方文档 基于单机文件系统部署 一. Mac 1.1 docker-compose.yaml mkdir -p /Users/wanfei/docker-compose/polardb-pg && cd /Users/wanfei…

开放式耳机哪款性价比高?这五款超值精品不容错过

喜欢进行户外运动的小伙伴们&#xff0c;应该都很需要一款既可以匹配运动场景&#xff0c;又兼顾音质体验的无线蓝牙耳机吧。而开放式耳机拥有佩戴舒适牢固&#xff0c;不堵塞耳部&#xff0c;不影响外部声音传入耳部的优点&#xff0c;完全可以成为运动健身人士户外运动的好伴…