ajax学习

news2024/11/26 4:40:19

1.什么是ajax(局部刷新)
在这里插入图片描述
2.原生ajax

@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
    
    /** 
    @author: <br/> 
    @date:  <br/>
    @param:<br/>
    @return: 
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //在这里处理请求
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        response.getWriter().write("hello ajax...");
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
        <input type="button" onclick="alert('呵呵,被点了!')" value="点我啊!"/>
        <input type="button" onclick="sendAjax()" value="发出异步请求"/>

</body>
<script>


    function sendAjax(){
        /*
         目标:使用原生ajax发出异步请求
         */

        //1. 创建ajax的引擎
        let xhttp ;
        if(window.XMLHttpRequest){
            xhttp = new XMLHttpRequest();
        }else{
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //2. 设置请求的方式与地址
        xhttp.open("get","/ajaxServlet");

        //3. 发送请求
        xhttp.send();

        //4. 接收服务器的响应,注册一个时间
        xhttp.onreadystatechange=function(){
            //如果需要接收服务器的响应
            ///xhttp.readyState==4 代表请求已经处理完毕,   xhttp.status==200 已经成功响应
            if(xhttp.readyState==4 && xhttp.status==200){
                alert("异步请求回来了:"+xhttp.responseText);  //responseText代表了服务器的响应信息
            }

        }
    }
</script>
</html>

3.axios使用
Axios 是对原生的AJAX进行封装,简化书写
官网:https://www.axios-http.cn

axios的js:
链接:https://pan.baidu.com/s/19HKUXneBJ5tiyUkJsJpRAw?pwd=78hn
提取码:78hn

获得js后把它放到对应的项目文件夹下
在这里插入图片描述
然后在html里要导入js脚本

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/axios-0.18.0.js"></script>

</head>

发送请求并获取响应结果
在这里插入图片描述

function sendTest1(){
    //使用axios发送get方式请求
    axios({
        method:"get",
        url:"/ajaxServlet?username=张三"
    }).then(function(resp){ //resp的名字可以是任意的,服务器给的响应数据都封装到resp对象中,如果需要获取服务器的响应数据,需要使用resp.data
        alert("服务器的响应数据:"+ resp.data);
    })
}


function sendTest2(){
    //使用axios发送get方式请求
    axios({
        method:"post",
        url:"/ajaxServlet",
        data:"username=张三"
    }).then(function(resp){ //resp的名字可以是任意的,服务器给的响应数据都封装到resp对象中,如果需要获取服务器的响应数据,需要使用resp.data
        alert("服务器的响应数据:"+ resp.data);
    })
}

简化的写法:

function sendTest1(){
    //使用axios发送get方式请求
   axios.get("/ajaxServlet?username=张三").then(resp=>{
       alert("服务器响应的数据:"+ resp.data);
   })
}


function sendTest2(){
    axios.post("/ajaxServlet","username=张三").then(resp=>{
        alert("服务器的响应数据:"+resp.data);
    })
}

4.json格式:
概念:JavaScript Object Notation。JavaScript 对象表示法
由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输
(axios发送数据时会自动转json格式,注意是post请求才能发)

导入fastjson依赖

<!--导入fastJson依赖-->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.76</version>
</dependency>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //1.定义一个json格式的字符串
        let personJson = '{"id":110,"name":"狗娃","address":["广州","深圳","东莞"]}';

        //2. json格式的字符串是可以转换js对象
        let person = JSON.parse(personJson);

        //访问属性
        alert("编号:"+person.id+" 姓名:"+person.name+" 地址:"+person.address);

        //3. js对象是否可以转换json格式的字符串
        let personStr = JSON.stringify(person);
        alert(personStr);

    </script>
</head>
<body>

</body>
</html>

注意如果用了json,那么在后台就不能用request.getParements获取参数了,需要用JSON.parseObject进行转换

BrandService brandService = new BrandService();

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //1. 解决请求参数乱码问题
    request.setCharacterEncoding("utf-8");
    //2. 获取请求参数, 注意:如果发过来的json格式的字符串不能使用getParameter,只能通过流方式读取
    BufferedReader reader = request.getReader();
    String jsonStr = reader.readLine();  //读取到第一行字符串,读取到java对象的json字符串。
    //3. 把json字符串转换为java对象
    Brand brand = JSON.parseObject(jsonStr, Brand.class);
    //4.插入数据库
    brandService.addBrand(brand);

    response.getWriter().write("success");
}

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

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

相关文章

基于uniapp的药品商城外卖小程序

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

利用OpenCV的函数warpPerspective()作图像的透视变换

图像的透视变换是指按照物体的成像投影规律进行变换。通过透视变换可以将图像投影到新的成像平面上。 图像的透视变换通常用来解决相机的视线与物体所在平面不垂直的问题。 比如&#xff0c;下面这幅图中&#xff0c;如果相机的视线与正方形是垂直的&#xff0c;那么应该是下面…

改bug神器,ChatGPT分分钟扫描,真香!

最近ChatGPT大火&#xff0c;各大论坛中都会出现它的关键词。 机器和人对话本不是什么新鲜事&#xff0c;而ChatGPT上线仅5天&#xff0c;用户数量就超百万&#xff0c;之所以能在短时间吸引到这么多用户尝鲜&#xff0c;是因为它比“人工智障”的AI前辈们聪明多了~ 玩了一会…

T900------900MHz跳频电台核心模块(兼容P900,远距离)

&#xff08;咨询申请 - 上海皕科电子有限公司--专注物联网注册后&#xff0c;可以获取详细数据手册和评估工具&#xff09; 目录 1 概述 2 性能特点 3 硬件说明 4 整机介绍 1 概述 T900 模块使用点对点&#xff08;PP&#xff09;、点对多点&#xff08;PMP&#xff0…

浅析几种常见的诊断数据库——ARXML

分别回忆了常见诊断数据库CDD、ODX文件格式,今天主要介绍另外一种常用的数据库文件格式——ARXML(主要应用于AUTOSAR流程数据交互) AUTOSAR诊断提取模板——ARXML AUTOSAR是汽车开放系统架构,该架构有利于车辆电子系统软件的交互与更新,并为高效管理复杂的车辆电子和软件…

Linux 管理联网 配置静态解析 域名解析

问题引入 # 我们平时在网址栏访问网址的时候&#xff0c; 比如 &#xff1a; 访问 百度 的时候&#xff0c;是怎样访问的 &#xff1f; >>> 那是不是就是在 地址栏 我们输入 www.baidu.com 随后就跳转到 百度的页面去了~&#xff01; 但实际是 &#xff1a; >&g…

MySQL-事务

文章目录事务&#xff08;Transaction&#xff09;为什么会出现事务ACID四大属性事务提交的方式事务基本操作&#xff1a;事务隔离级别&#xff08;MVCC&#xff09;隔离级别&#xff1a;如何理解隔离性&#xff1f;为何要存在隔离级别&#xff1f;一致性读读并发写写并发读写并…

机器学习基础概念篇 | 10大经典算法

“数据算法模型”。 面对具体的问题&#xff0c;选择切合问题的模型进行求解十分重要。有经验的数据科学家根据日常算法的积累&#xff0c;往往能在最短时间内选择更适合该问题的算法&#xff0c;因此构建的模型往往更准确高效。本文归纳了机器学习的10大算法&#xff0c;并分别…

FIX:WIN11客户机完美支持 Eyeshot Fem 最新Crack

概述 将 CAD 功能添加到您的 .NET 应用程序 Eyeshot 是一个基于.NET Framework 的CAD 控件。它允许开发人员快速将 CAD 功能添加到 WinForms 和 WPF 应用程序。Eyeshot 提供了从头开始构建几何体、使用有限元方法对其进行分析并在其上生成刀具路径的工具。还可以使用 CAD 交换…

Ubuntu安装Tango教程

文章目录环境步骤其他指令参考环境 虚拟机&#xff1a;VMware Ubuntun&#xff1a;20.04LTS Tango&#xff1a;9.3.4 步骤 为tango-controls安装: sudo apt-get install g openjdk-8-jdk mariadb-server libmariadb-dev zlib1g-dev libomniorb4-dev libcos4-dev omniidl li…

RPM包制作

如何准备编译制作一个RPM包 编译制作RPM包&#xff0c;主要包含如下几个步骤: 规划好制作一个什么样的RPM包 搜集相关的软件和压缩包、补丁 创建SPEC文件 制作RPM包 测试验证RPM包规划好制作一个什么样的RPM包 一般情况下&#xff0c;有如下几种情况会需要制作RPM包 应用程…

MySQL中Innodb 存储引擎的Buffer Pool详解

MYSQL的InnoDB存储引擎为了提高性能&#xff0c;减少磁盘IO&#xff0c;而设计了缓冲池&#xff08;Buffer Pool&#xff09;。结构图如下&#xff1a; Buffer Pool 什么是Buffer Pool Buffer Pool即缓冲池&#xff08;简称BP&#xff09;&#xff0c;BP以Page页为单位&#x…

详解Lombok 的使用,工作原理,优缺点

文章目录Lombok概述Lombok的安装Lombok的具体使用Lombok工作原理Lombok的优缺点Lombok概述 相信大家对于lombok应该都不陌生&#xff0c;Lombok是一个可以大幅减少java模板代码的工具。通俗一点来说&#xff0c;通过添加注解的方式&#xff0c;不需要为类编写常用几个方法&…

stm32f407VET6 系统学习 day05 复位, 时钟,看门狗, 滴答定时器

1. 复位 1.三种类型的复位&#xff0c;系统复位&#xff0c;电源复位&#xff0c;备份复位; 2.复位作用:让程序从头开始运行&#xff0c;恢复到一开始运行的状态 2.stm32 时钟源 1. 5个是时钟源 1.HSI高速内部时钟:RC振荡器&#xff0c;频率为16MHz&#xff0c;精度不高。可…

npm中dependencies与devDependencies的区别

这个问题的出现是我下载npm包中的依赖文件安装错地方了&#xff0c;导致上线项目有问题&#xff0c;顺便一起来看看它们的区别。 一、前言 说白了就是当初学的时候太菜&#xff0c;没注意到它们的区别&#xff0c;也没去查明白。哈哈哈 二、dependencies与devDependencies的区别…

【人工智能与机器学习】——深度学习(学习笔记)

&#x1f4d6; 前言&#xff1a;长期以来&#xff0c;图像识别技术一直是人工智能研究领域的难题。近年来&#xff0c;随着算力的提升、物联网与大数据的出现、机器学习算法的快速发展&#xff0c;科学家们终于找到了有效的方法来实现图像识别&#xff0c;这就是基于人工神经网…

【OpenCV-Python】教程:8-2 图像修复 Image Inpainting

OpenCV Python 图像修复 【目标】 去除小噪声和笔画等&#xff1b; 【理论】 大多数人家里都会有一些旧照片&#xff0c;上面有一些黑点&#xff0c;一些笔画等。你想过把它修复回来吗?我们不能简单地在油漆工具中删除它们&#xff0c;因为它只会用白色结构取代黑色结构&a…

代码随想录拓展day4 143.重排链表;141. 环形链表;面试题 02.07. 链表相交

代码随想录拓展day4 143.重排链表&#xff1b;141. 环形链表&#xff1b;面试题 02.07. 链表相交 关于链表的一些应用&#xff0c;基本都用到了快慢指针的思路。对于单链表来说&#xff0c;确定边界&#xff0c;也就是遍历时的终止条件非常重要。 143.重排链表 143. 重排链表…

Web前端105天-day65-ToolChain

ToolChain01 目录 前言 一、Webpack 二、指南 总结 前言 ToolChain01学习开始 一、Webpack 官网&#xff1a;webpack 浏览器仅支持: html css 和 js 三种语言实际开发中: 会使用到其他的一些语言, 例如 TS, sass, scss 等.... 这些语言开发起来更加方便快捷, 但是浏览器不…

pinia 笔记

1、安装 npm i pinia -S2、创建store基本结构 1、在src下创建store文件夹并创建app.js文件&#xff0c;同时编写基本代码结构 // 引入实例化store的函数 import { defineStore } from "pinia";// 实例出一个名为app的store,那appStore是什么&#xff1f;它代表当前…