什么是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. HiveSQL 工作实战总结

    记录一些工作中有意思的统计指标,做过一些简化方便大家阅读,记录如有错误,欢迎在评论区提问讨论~ 问题类型 连续问题 两种思路 第一种:日期减去一列数字得出日期相同,主要是通过row_number窗口函 ...

  2. react减少组件渲染

    当this.setState()修改了state中的数据后,当前组件将重新渲染,同时也会重新渲染子组件,但只会渲染当前组件子树(当前组件以其所有子组件) shouldComponentUpdate 当 ...

  3. CSP-S2019 题解

    做了这套题,如果是让现在的我当时去考的话应该一共可以有 450 分,格雷码,括号树,树的重心都可以做,树上的数可以有 10 分,Emiya 至少可以有 76 分, 划分也可以有 64 分.看 OIer ...

  4. P7322

    P7322 好神仙! \(\color{#5bc9}\text{提醒,本文有大量没有推到过程的式子,所以读者可以自己遮住先推一下}\) Inscription: 有一个长度为 \(k\) 的窗口,在一 ...

  5. 【INFINI Workshop 深圳站】8 月 31 日一起动手实验玩转 Easysearch

    8 月 31 日下午 和 INFINI Labs 的技术专家面对面,第一时间了解极限实验室的发布最新产品和功能特性,通过动手实战,快速掌握最前沿的搜索技术,并用于实际项目中.欢迎大家免费报名参加. 活 ...

  6. 在线IP归属地查询工具

    在线IP地址归属地查询工具,通过该工具可以查询指定IP的物理地址或域名服务器的IP和物理地址,及所在国家或城市IP归属地,数据为纯真IP. 在线IP归属地查询工具

  7. 5分钟理透LangChain的Chain

    LangChain几乎是LLM应用开发的第一选择,它的野心也比较大,它致力于将自己打造成LLM应用开发的最大社区.而LangChain最核心的部分非 Chain 莫属. 那Chain到底是个啥,概念比 ...

  8. 05-CentOS防火墙

    概述 CentOS中的防火墙有很多,如SELinux.Firewall.TCP Wrappers.iptables/netfilter. 每种防火墙都有各自擅长的地方. 这里主要讲两种:SELinux ...

  9. 服务器上安装centos7系统遇到的坑

    centos7的安装报错"no controller found" 出现no controller found解决方案1.等待命令行出现 2.输入ls /dev/sd*   找到自 ...

  10. xpath-猪八戒网服务商名称爬取

    import requests from lxml import etree url = 'https://changsha.zbj.com/xcxkfzbjzbj/f.html?fr=zbj.sy. ...