什么是AJAX?

按照使用的感觉来看

说到底就是一个可以不刷新网页就能发送POST & GET请求的技术

AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)

是指一种创建交互式网页应用的网页开发技术

ajax 是一种浏览器通过 js 异步发起请求,局部更新页面的技术。

Ajax 请求的局部更新,浏览器地址栏不会发生变化

局部更新不会舍弃原来页面的内容

原生JS的AJAX实现

【省略,过于繁琐,开发不会使用】

jQuery 封装的 AJAX 请求

Ajax的作用:

网页不刷新的情况下,从服务器中获取数据的解决方案。

这是一个新的局部的请求,并不是整个网页发出的请求

考虑到前端的数据处理,我们需要指定数据格式为JSON

需求的特点 符合 Ajax:

- 我们就是希望能够不刷新网页来进行前后端的数据交互

- 并不是整个网页都需要加载,而是仅仅局部的一个部分需要获取

快速上手:

我们需要一个能使用Ajax的Jquery库文件

并不是所有的Jquery版本都可以发送Ajax,注意这个坑把

1、在头标签中导入Jquery文件:

使用原生JS也不是不可以写,主要是因为太过复杂

<script type="text/javascript" src="jquery-1.12.4.min.js"></script>

2、编写一个可以用来出发事件的元素

<button id="btn"> Ajax触发测试 </button>

3、编写JQ代码

- 首先测试,这个元素是否被JQ绑定,且事件能否成功的触发

- 其次,编写JQ的Ajax请求

原始的JQ版本的Ajax请求是这样编写的:

$.ajax({})

里面需要注入一个对象:

该对象需要以下的一些要素:

- url ,你需要把这个Ajax请求发送到哪里?

- type,这个Ajax请求的方式是哪种?

- data,这个Ajax请求需要携带什么参数?

- success,请求成功之后,得到的数据需要怎么处理?【这个函数对象又被称为是回调函数,也就是响应成功之后要执行的事情】

- dataType,返回的数据类型应该以什么样的格式过来?

    <script type="text/javascript">
$(function () {
$("#btn").click(function () {
// alert("绑定成功,事件触发!!!")
$.ajax({
url: "http://localhost:8080/RBAC/ajax",
type: "post",
data: {
act: "feedBack",
username: "silentHonor101Ark",
password: "DZZ19970906"
},
success:function (data) {
alert(data);
alert(typeof data);
console.log(data);// $("#table").empty();
},
dataType: "json"
});
});
});
</script>

4、发送到JavaWeb的AjaxServlet程序:

- Ajax从页面发送请求过来,服务器封装的请求对象封装了参数信息

从getParameter方法中获取出来

- 其次,我们需要从数据库中根据Ajax发送的参数,用来查询数据,然后给Java对象封装存储

- 前端通用的数据交互格式为Json,所以我们还需要按照Json格式把对象序列化成一个字符串

- 然后调用响应对象的输出对象,把Json格式的字符串写回去给前端

package cn.dai.test.servlettest;

import cn.dai.dao.UserDaoImpl;
import cn.dai.pojo.User;
import cn.dai.service.UserService;
import cn.dai.service.UserServiceImpl;
import cn.dai.servlet.BaseServlet;
import com.alibaba.fastjson.JSON; import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List; /**
* @author ArkD42
* @file RBAC
* @create 2020 - 06 - 16 - 8:32
*/ @WebServlet("/ajax")
public class AjaxServlet extends BaseServlet { UserService userService = new UserServiceImpl(new UserDaoImpl()); /**
* /ajax?act=feedBack
* 反馈给前端Ajax不应该跳转,直接写输出流即可
* 数据出于方便前端处理的考虑,统一使用的数据格式为JSON
* @param request
* @param response
* @throws IOException
*/
public void feedBack(HttpServletRequest request, HttpServletResponse response) throws IOException {
// Ajax从前端发送请求,Servlet接受请求,获取关键信息,也就是id主键信息等等,
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("从AjaxTest.jsp获取到的数据: 用户名:" + username + " 密码:" + password);
// 然后在Servlet这里我们就可以调用Service访问数据库,把数据封装成Java对象【或者是集合容器对象】 List<User> allUsers = userService.getAllUsers(); // 对这个对象需要转换成前端能接受处理的JSON格式
String jsonString = JSON.toJSONString(allUsers); // PrintWriter out
PrintWriter writer = response.getWriter(); // 把转换好的格式写给前端
writer.println(jsonString);
}
}

5、具体的数据处理

- 然后这个JSON字符串写给了前端,就会被回调函数的data参数或者什么给获取到

- 这个data对象就会存储数据信息,至于如何调用展示到前端页面上面,就不是这里Ajax细讲的内容了

所以我们总结一下这上面做完之后的感受,

实际上Ajax就是一个用来在不刷新页面的情况下跟后台数据交互的解决方案

所以有时候就是好在不刷新网页获取,有时候坏也在不刷新网页获取

我在学习Ajax总是执着于一个错误的观点:

- ajax会让网页跳转,其次不明白Servlet的内容是干什么

 

【AJAX】Asynchronous JavaScript And XML (非同步的JS & XML)的更多相关文章

  1. AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 最大的 ...

  2. 什么是AJAX? AJAX:”Asynchronous JavaScript and XML”中文意思:异步JavaScript和XML。

    指一种创建交互式网页应用的网页开发技术. AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词. 不是指一种单一的技术,而是有机地利用了一系列相关的技术: web标准( Stan ...

  3. Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释

    前端 <script type="text/javascript"> $(function(){ $("#tid").keyup(function( ...

  4. ajax(Asynchronous JavaScript and XML) 异步js或者xml

    1.XMLHttpRequest 对象:向服务器发送局部的请求,异步获取执行 a.浏览器支持 b.语法: xmlhttp==new XMLHttpRequest(); xmlhttp.open(&qu ...

  5. AJAX异步的 JavaScript

    什么是AJAX: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. ...

  6. javascript jsscript .js xml html json soap

    javascript ecma标准的脚本语言用于 jsscript 微软标准的一种脚本语言 .js javascript或jsscript保存成文件的形式可用于在html里重复引用 jsscript只 ...

  7. Ajax技术 - (Asynchronous JavaScript + XML)

    Ajax Ajax = 异步JavaScript和XML,Ajax是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新.可以再网页不重新加载的情况下, ...

  8. AJAX(Asynchronous JavaScript And XML)

    AJAX(Asynchronous JavaScript And XML):异步的javascript和xml技术 作用:在不刷新整个页面的情况下,通过XMLHttpRequest向后台偷偷发起请求, ...

  9. jQuery和ajax【“Asynchronous Javascript And XML】

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  10. JavaScript 【非IE DOM2级XML】

    DOM2中的XML IE可以实现了对XML字符串或XML文件的读取,其他浏览器也各自实现了对XML处理功能.DOM2级在document.implementaion中引入了createDocument ...

随机推荐

  1. c# 拖拽列表顺序 | 拖拽合并分组 | 移除分组功能

    动图演示: 背景: 一开始做功能的时候没有增加排序的索引(sort-index),后来要求做拖拽排序功能:所以写了这个不需要初始排序就可以完成的拖拽功能:如果是table表格排序逻辑和这个相似,这里拿 ...

  2. Spark-submit常用任务命令参数和说明

    Spark常用任务命令参数和说明 spark-submit \ --name task2018072711591669 \ --master yarn --deploy-mode client \ - ...

  3. work13

    任务要求: 1.建立一个企鹅类,企鹅有名字(可以自由添加属性)2.把多个企鹅的信息添加到集合中3.查看企鹅的数量4.遍历输出所有企鹅的信息5.删除集合中索引值是2的企鹅的元素 任务描述: 定义一个老鼠 ...

  4. vite+vue3+ts+elementPlus前端框架搭建 [三] router路由管理

    路由包括动态路由.静态路由两种,本文中以静态路由的方式实现了动态路由. 1. 创建Router 在Src目录下创建router文件夹,并在router文件夹下创建index.ts文件. index.t ...

  5. Apollo启动配置排查,超时时间的配置

    Apollo启动配置排查 1.排查下来是 本地的服务 apollo 配置fake发布到线上去了.2.或者是引用的apollo jar包中指向的apollo服务器地址是否正确. 3.超时时间的配置 ## ...

  6. https请求,Java代码忽略https证书:解决No subject alternative names present问题

    https请求,Java代码忽略https证书:解决No subject alternative names present问题 package com.test.utils; import org. ...

  7. YUM退役了?DNF本地源配置

    客户遇到在OEL8安装Oracle缺包问题,使用dnf安装也没有,甚至连oracle-database-preinstall-21c都装不上.本质是DNF配置问题. 早期为了解决这类问题,专门写过很多 ...

  8. dig 命令详解及使用示例

    一.背景知识 CNAME CNAME 是 Canonical Name 的缩写,它是 DNS(域名系统)记录的一种类型.CNAME 记录用于将一个域名映射(别名)到另一个域名.换句话说,当你访问一个设 ...

  9. Codeforces Global Round 26 A~C2

    惹啊啊啊啊,这场做得我发昏,最近总感觉不在状态,但还是再在冲击1600-1800的题目. A. Strange Splitting ---------------------------------题 ...

  10. 【Hive报错】在hue上执行自定义的hive函数报错 Error while compiling statement:FAILED:SemanticException [Error 10011]: Invalid function default.sqlServerdes

    在 Hive客户端中使用自定义创建UDF函数时,报"ERROR 10011","invalid function"的异常: 在Hive上自定义创建了一个函数,在 ...