一文必懂-Ajax与form

article/2025/9/23 8:47:37

Restful与Ajax

  • Ajax
    • 示例1:查询所有学生数据
    • 示例2:查找部分学生数据
      • 中文传参
  • 表单标签
    • 抓包数据
  • Post与Get
  • Restful
    • 示例
    • Restful附带URL参数
  • Ajax与form标签

Ajax

一种在网页上调用后台接口的方式
jquery提供了相应的用法 即 $.ajax({内容});先添加jQuery包。
内容部分为 JS对象。

$.ajax({
type:'get',  				 //请求类型,get->调用doget(),post-> 调用dopost();
data:req,     //发送的数据为req            ;
url:'queryAll',		   //接口地址,项目的相对地址			
datatype:'json',					//返回数据的格式类型
success :function(resp){				//回调函数,当服务器返回数据时,调用。				
console.log(resp);
}
});

显示返回的数据
当Ajax提交完数据且后端处理完成后,success的回调方法被调用,此时,可以前端页面应处理显示返回的数据**(为什么成为局部刷新技术的原因)**
可将Ajax封装在 点击时间中,当按钮被点击时,Ajax对象被调用

示例1:查询所有学生数据

  1. 前端代码
    在这里插入图片描述
  2. JS代码
function query()
{
$.ajax({
type:'GET',                   //请求类型,get->调用doget(),post-> 调用dopost();
url:'queryall',			   //接口地址,项目的相对地址			
datatype:'json',					//返回数据的格式类型
success :function(resp){				//回调函数,当函数返回应答时,调用。				
console.log(resp);
showresult(result);
}
});}
);        //表格体的标签,标签选择器
showresult(result)
{
var target =$(".main .content tbody");
For(var rows of result){		//循环遍历返回的每一个对象。
var str="<tr>"						//表行的拼接。
+"<td>" +rows.id+"</td>"
+"<td>"+rows.name+"</td>"
+"</tr>";
target.append(str);          //插入后 在页面编译显示为html内容 即为表格的一行。
} //通过这个方法可以将 每个对象显示在业面

示例2:查找部分学生数据

  1. HTML代码
    选择查找显示:添加文本行 输入学号的开始和结束
    在这里插入图片描述
  2. JS代码
    获得class为from 和to 的标签,获取他们的值value,再去掉空格
    在这里插入图片描述
    在这里插入图片描述
    在ajax 中加入data 选项,选择后端接口url,
    ajax()会自动的把 data 里的数据构造成 ?from=xxx&to=yyy 的形式附加在 URL后面

中文传参

当我们需要把一个中文参数传递到后台,中文是不能直接放在 URL 里
http://xx.x.x/QueryById?filter=张
这是浏览器会把中文字符转成百分号形式的编码
在这里插入图片描述

中文与对应编码的转换:
String  s = "张";
String query  = URLEncoder.encode(s); 
// --> %E5%BC%A0String query = "%E5%BC%A0";
String s = URLDecoder.decode(s);   
// --> “张”

表单标签

<form method="post" action="addStudent">
<input  type="text" name="id">...
<input type="submit" value="提交">
</form>

对应后台的servlet:
doPost() --> method=”post”;
addStudent–> action=”addStudent”;
Request.getParameter(“***” ) -->name=”***”;

抓包数据

在这里插入图片描述
Post方式的表单数据放在http的正文部分来提交数据

Post与Get

Http Post的特点:
1 第一行为Post
2 数据放在Http正文部分的提交数据
3 中文仍然使用URL编码
Http Get的特点:
1 第一行为Get
2 数据放在访问路径?后面 ,以&分隔
3 中文仍然使用URL编码

Restful

前端使用json方式传递数据给后端,后端使用json方式将数据传给前端;

示例

  1. 前端JS代码
<script>
Function  AddStudent()
{
var req = {	};
req.id = $('.main .content .id').val().trim();
req.name = $('.main .content .name').val().trim();
req.phone == $('.main .content .name').val().trim();var json  =JSON.stringify(req);$.ajax({type :"post",
url:"addStudent",
dataType:"json",
data:"json",
success:function(resp){}
});
}
</script>
  1. 后端部分代码
    将前端传来的json数据转化为字符串,在转化为jsonobject来读取
---doPost---
String  reqText = ReadAsText(request.getInputStream(),”utf-8);
JSONObject obj = new JSONObject(reqText);
int id = obj.getInt(“id”);
String name = obj.getString(“name”);
String phone = obj.getString(“phone”);
-----------------------------------
public String ReadAsText( InputStream inputStream ,String charset)
{
ByteArrayOutputStream out = new ByteArrayOutputStream[1024*16];
Byte[] data = new byte[1024];
While(true)
{
int n = inputStream.read(data);
if(n<0)break;
if(n==0)continue;
out.write(data,0,n);
}
String str = out.toString(charset);
out.close();
return str;
}

Restful附带URL参数

  1. 前端JS
<script>
function  addStudent()
{
var req = {	};
req.id = $('.main .content .id').val().trim();
req.name = $('.main .content .name').val().trim();
req.phone == $('.main .content .name').val().trim();var json  =JSON.stringify(req);$.ajax({
type :"post",
url:"addStudent?root=admin&password=123",
dataType:"json",
data:"req",
success:function(resp){}
});
}
</script>
  1. 后端
//----------Servlet doPost方法------
HashMap<String ,String> map = queryString(request.getQueryString());
//----------------------
Public HashMap<String ,String> queryString(String queryString){
HashMap<String,String> map = new HashMap<String,String>();
String[] ppp= queryString.split(&);
While(String p :ppp)
{
String[] kv = p.split(=);
String key = kv[0];
String value = kv[1];
Map.put(key,value);
}
}

Ajax与form标签

为什么前端用ajax而很少用form标签提交请求呢?

  • 交互方式:
  1. form使用的同步方式,即点击提交按钮后,数据就提交到后端接口了,前端是没有办法接收后端返回的数据的。
  2. ajax使用的异步方式,即点击提交按钮后,数据提交到后端接口后,后端返回数据后,前端的success异步调用方法可以接受后端返回的数据,然后可以使用JS刷新一些地方的数据。(例如未登录–>已登录);
  • 数据处理格式
    使用form标签提交数据时,很难转化为JSON格式的数据;
    使用Ajax方式提交数据时,只需要在JS函数里转化好数据格式即可。

http://chatgpt.dhexx.cn/article/I3rnCVgn.shtml

相关文章

手把手教你开发一款属于自己的Arduino开发板

【前言】 相信很多小伙伴们手里都一块或者几块开发板吧&#xff0c;没有没想过自己也开发一款开发板呢&#xff1f;接下来就教你开发一款属于自己的开发板吧(●◡●)。 【软件版本】 AD17 【正文】 1. 硬件选型 1.1 主控芯片&#xff1a;用ATMEGA32P吧&#xff0c;用LQFP封…

Arduino IDE 离线添加开发板

目录 问题背景配置环境配置方法在线方法&#xff08;失败&#xff09;离线方法&#xff08;成功&#xff09; 其他开发板参考资料 问题背景 想要使用ESP32-S2开发板&#xff0c;搭建一个小项目&#xff0c;目前比较主流的编程方法有三种&#xff0c;一种是IDF&#xff08;应该…

Arduino nano开发板选购

介绍两块Arduino nano开发板&#xff0c;串口芯片都是ch340g&#xff0c;黑色的采用Atmega168p&#xff0c;粉色的采用Atmega328p。板子挺厚的而且都是type c接口&#xff0c;有黑色和粉色可选。 除了主控芯片不同&#xff0c;其他都一样&#xff0c;只需要在Arduino程序中将处…

配置esp8266开发板的Arduino开发环境

1.esp8266开发板硬件&#xff1a; 基于esp8266的nodemuc开发板&#xff08;pdd上有卖不超过15块&#xff09;&#xff1b;microUSB数据线&#xff08;这里一定要是数据线&#xff0c;具备数据传输和充电功能&#xff0c;不能仅充电&#xff09;。 esp8266开发环境有许多例如&a…

Arduino手动安装esp8266开发板

Arduino手动安装esp8266开发板可以用离线安装包&#xff0c;确定就是离线安装包网上不好找&#xff0c;版本也不齐全&#xff0c;无法找到某个特定版本的离线安装包&#xff0c;好处是直接双击运行&#xff0c;傻瓜式安装就好了&#xff0c;下载地址 https://cloud.codess-nas…

几个常用的arduino附加开发板管理网址

摘要&#xff1a;本文介绍arduino变成环境下几个常用的开发板的网址&#xff0c;设置方法是“首选项”--”附加开发板管理器网址“填入对应的字符串即可&#xff0c;本文介绍的有mtstack开发板。 m5stack开发板 例如下图这种 还有下图这种&#xff0c;它们都是基于esp32核心的。…

如何用Arduino IDE开发9.9元的合宙LuatOS ESP32C3开发板?

如何用Arduino IDE开发9.9元的合宙LuatOS ESP32C3开发板&#xff1f; 合宙LuatOS ESP32C3-CORE开发板 简介硬件准备软件准备1、安装串口驱动&#xff08;CH343&#xff09;2、安装Arduino IDE3、添加ESP32C3开发板 烧录测试程序1、编译程序2、连接 & 上传 合宙LuatOS ESP32…

认识 Arduino 开发板

Arduino 是源自意大利的一个开放源代码的硬件项目平台&#xff0c;该平台包括一块具备简单 I/O 功能的电路板以及一套程序开发环境软件。 Arduino 真正腾飞的原因是其能够实现将模拟输入转换为数字输入&#xff0c;换言之&#xff0c;您可以将光线&#xff0c;温度&#xf…

彻底分析Arduino库安装和开发板库安装路径和方式

参考&#xff1a;https://blog.csdn.net/weixin_43794311/article/details/128631564&#xff0c;https://blog.csdn.net/t01051/article/details/103766886 一个最简单的安装esp8266和esp32的方法 在网址&#xff1a;https://arduino.me/download&#xff0c;下载对应的开发…

Arduino开发教程

Arduino开发教程 1 前言1.1 大道之悟1.2 Arduino 硬件1.3 Arduino 软件 2.基础篇2.1 点灯操作2.2 电机驱动2.3 机器通讯 3. 提高篇3.1 联合实验3.2 物联开发 4. 进阶篇4.1 实物开发4.2 友人优作 5. 优质工具5.1 串口工具5.2 开发工具5.3 3D打印机 6. 小结 &#x1f38f;&#x…

自制Arduino 风格开发板 - HK32F030MF4P6 紧凑开发板

模仿Arduino Nano 做一个HK32F030M 的紧凑开发板&#xff0c;排针间距和Arduino Nano 相同&#xff0c;整体尺寸略小&#xff0c;适合插在面包板上。兼容HK32F030MF4P6 和0301M&#xff0c;板载CH340N 串口和DS1307 时钟模块。开源工程地址&#xff1a;HK32F030MF4P6 紧凑开发板…

Arduino添加ESP32开发板

【2023年3月4日】 最近要在新电脑上安装Arduino&#xff0c;需要进行一些配置&#xff0c;正好记录一下&#xff01; Arduino2.0.1 下的开发板添加操作。 ESP32开发板GitHub链接&#xff1a; GitHub - espressif/arduino-esp32: Arduino core for the ESP32Arduino core for…

Arduino上手动添加开发板

最近一个在一个项目上想在树莓派3B上使用9dof-razor-imu传感器&#xff0c;&#xff0c;搭建开发环境的时候根据其官网说明选了Arduino。然而在添加他的第三方SparkFun开发板时出了问题&#xff0c;因为他的开发板环境包在GitHub上&#xff0c;所以Arduino的开发板管理器在下载…

Arduino安装与配置ESP8266开发板(超简单,亲测有效)

文章目录 前言一、下载Arduino二、 ESP8266环境配置(超简单&#xff0c;亲测有效)三、下载验证总结 前言 由于要上数字信号处理课程&#xff0c;需要安装Arduino&#xff0c;并在Arduino中配置ESP8266环境&#xff0c;然而发现在首选项中附加开发板管理器网址这种方法&#xf…

基于Arduino Uno开发板制作音乐播放器

基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器。 利用Arduino Uno读取sd卡模块中内存卡的音乐&#xff0c;传输信号到扬声器进行播放。一、项目软硬件简介&准备 1.Arduino开发板 Arduino Uno 是一款基于 Microchip ATmega328P 微控制…

二、初识arduino uno开发板

开发板参数表 什么是arduino? Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件&#xff08;各种型号的Arduino板&#xff09;和软件&#xff08;ArduinoIDE&#xff09;。构建于开放原始码simple I/O介面版&#xff0c;并且具有使用类似Java、C语言的Process…

Arduino基础入门篇(认识开发板和面包板)

Arduino开发板 Arduino是一款简单易学且功能丰富的开源平台&#xff0c;包含硬件部分&#xff08;各种型号的Arduino开发板&#xff09;和软件部分&#xff08;Arduino IDE) Arduino硬件部分可以独立工作&#xff0c;也可以与外部硬件设备协同工作。比如利用Arduino配合各种传…

esp32开发板 Arduino IDE 2.0环境搭建--2022年记录

我用的是Arduino IDE 2.0版的。 1.首先打开Arduino&#xff0c;然后点击File→Preferences&#xff0c;在弹出的对话框里填入下面的链接&#xff0c;接着点击确定并关闭对话框。 https://www.arduino.cn/package_esp32_index.json 2.在开发板管理器里头搜索esp32&#xff0c;…

Arduino 基础入门篇 03—UNO R3开发板介绍

工欲善其事&#xff0c;必先利其器。上一篇讲解了Arduino开发的软件环境&#xff0c;本文将介绍Arduino开发的硬件环境&#xff0c;即Arduino UNO R3开发板。 UNO R3开发板 Arduino生态中包括多种开发板、模块、扩展板。其中UNO R3是最适合入门且功能齐全使用量最多的Arduino…

Arduino 开发板介绍及对比

一、UNO/UNO r3 Arduino / Genuino Uno是基于ATmega328P的单片机开发板。它有14个数字输入/输出引脚&#xff08;其中6个可用作PWM输出&#xff09;&#xff0c;6个模拟输入脚&#xff0c;16 MHz晶振&#xff0c;USB连接&#xff0c;电源插孔&#xff0c;ICSP接头和复位按钮。…