【第14章】spring-mvc之ajax

news2025/1/17 0:52:30

文章目录

  • 前言
  • 一、准备
  • 二、单个值
    • 1.前端
    • 2.后端
    • 3. 结果
  • 三、对象
    • 1.前端
    • 2.后端
    • 3. 结果
  • 四、JSON对象
    • 1.前端
    • 2.后端
    • 3. 结果
  • 五、JSON数组
    • 1.前端
    • 2.后端
    • 3. 结果
  • 总结


前言

AJAX(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,通过在后端与服务器进行少量数据交换,AJAX 可以使网页应用快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。在实践中,虽然数据交换格式常用的是 JSON 而不是 XML,但 AJAX 这个名字仍然被广泛使用。


一、准备

在这里插入图片描述

<mvc:view-controller path="hello-ajax" view-name="params/ajax"/>
<a href="/hello-ajax">Hello Ajax</a><br>

二、单个值

1.前端

<%--
  Created by IntelliJ IDEA.
  User: 张军国001
  Date: 2024/5/2
  Time: 21:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>ajax</title>
</head>
<body>
<button onclick="btn1()">单个值</button><br>
<button onclick="btn2()">对象</button><br>
<button onclick="btn3()">对象数组</button><br>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script type="text/javascript">
    $(function (){
        console.log("hello ajax")
    })
    function btn1(){
        var name="张三";
        $.get('${pageContext.request.contextPath}/ajax01?name='+name, function(result) {
            console.log(result); // 打印返回的数据
        }).fail(function(jqXHR, textStatus, errorThrown) {
            console.error('Error: ' + textStatus, errorThrown);
        });
    }
    }
</script>
</body>
</html>

2.后端

package org.example.springmvc.params.controller;

import com.alibaba.fastjson2.JSONArray;
import org.example.springmvc.params.entity.User;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Create by zjg on 2024/5/2
 */
@RestController
public class AjaxController {
    @RequestMapping("/ajax01")
    public String ajax01(String name){
        System.out.println(name);
        return name;
    }
}

3. 结果

张三

三、对象

1.前端

function btn2(){
    var data={'id': 1, 'name': '张三' ,'birth':'2024-05-02','relatives':{'k1':'v1','k2':'v2'}};
    $.post('${pageContext.request.contextPath}/ajax02', data, function(result) {
        console.log(result); // 打印返回的数据
    }).fail(function(jqXHR, textStatus, errorThrown) {
        console.error('Error: ' + textStatus, errorThrown);
    });
}

2.后端

@RequestMapping("/ajax02")
public User ajax02(User user){
    System.out.println(user);
    return user;
}

3. 结果

User(id=1, name=张三, birth=Thu May 02 00:00:00 CST 2024, alias=null, hobbies=null, relatives={k1=v1, k2=v2}, role=null, friends=null)

四、JSON对象

1.前端

function btn3(){
   var data={'id': 1, 'name': '张三' ,'birth':'2024-05-02','relatives':{'k1':'v1','k2':'v2'}};
    $.ajax({
        url: '${pageContext.request.contextPath}/ajax03', // 请求的URL
        type: 'POST', // 请求类型(GET、POST等)
        contentType: 'application/json',
        dataType: 'json', // 预期服务器返回的数据类型(json、xml、html等)
        data: JSON.stringify(data),
        success: function(result, textStatus, jqXHR) {// 请求成功时执行的函数
            console.log(result); // 打印返回的数据
        },
        error: function(jqXHR, textStatus, errorThrown) { // 请求失败时执行的函数
            console.error('Error: ' + textStatus, errorThrown);
        }
    });
}

2.后端

@RequestMapping("/ajax03")
public JSONObject ajax03(@RequestBody JSONObject jsonObject){
    System.out.println(jsonObject);
    return jsonObject;
}

3. 结果

{"id":1,"name":"张三","birth":"2024-05-02","relatives":{"k1":"v1","k2":"v2"}}

五、JSON数组

1.前端

function btn4(){
    var data=[{ 'id': 1, 'name': '张三' ,'birth':'2024-05-02'},
        { 'id': 2, 'name': '李四' ,'birth':'2024-05-02'}];
    $.ajax({
        url: '${pageContext.request.contextPath}/ajax04', // 请求的URL
        type: 'POST', // 请求类型(GET、POST等)
        contentType: 'application/json',
        dataType: 'json', // 预期服务器返回的数据类型(json、xml、html等)
        data: JSON.stringify(data),
        success: function(result, textStatus, jqXHR) {// 请求成功时执行的函数
            console.log(result); // 打印返回的数据
        },
        error: function(jqXHR, textStatus, errorThrown) { // 请求失败时执行的函数
            console.error('Error: ' + textStatus, errorThrown);
        }
    });
}

2.后端

@RequestMapping("/ajax04")
public JSONArray ajax04(@RequestBody JSONArray jsonArray){
    System.out.println(jsonArray);
    return jsonArray;
}

3. 结果

[{"id":1,"name":"张三","birth":"2024-05-02"},{"id":2,"name":"李四","birth":"2024-05-02"}]

总结

回到顶部

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

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

相关文章

大模型微调实战之强化学习 贝尔曼方程及价值函数(一)

大模型微调实战之强化学习 贝尔曼方程及价值函数 强化学习&#xff08;RL&#xff09;是机器学习中一个话题&#xff0c;不仅在人工智能方面。它解决问题的方式与人类类似&#xff0c;我们每天都在学习并在生活中变得更好。 作为一名大模型学习者&#xff0c;当开始深入研究强…

2024蓝桥杯网络安全部分赛题wp

爬虫协议 题目给了提示访问robots.txt 会出三个目录 访问最后一个 点进去就flag{22560c15-577c-4c8b-9944-815473758bad} packet 下载附件&#xff0c;这个是流量包 放wireshark流量分析 搜http协议 发现有cat flag命令&#xff0c;直接看他返回的流量 最后base64解码即可…

Web服务器和Tomcat

Web介绍 对于http协议操作进行封装、简化web程序开发 部署web项目&#xff0c;对外提供上网信息浏览 Tomcat介绍 一个轻量级的web服务器 也称为web容器 Tomcat的文件夹介绍 下载地址&#xff1a;Apache Tomcat - Apache Tomcat 9 Software Downloads 安装&#xff1a;直…

嵌入式数据库SQLite 3配置使用详细笔记教程

0、惨痛教训 随着管理开发的项目体积越来越庞大&#xff0c;产品系统涉及的数据量也越来越多&#xff0c;并且伴随着项目不久就要交付给甲方了。如果项目的数据信息没有被妥善管理&#xff0c;后期设备的运行状态、操作状况等数据流信息不能被溯源&#xff0c;当出现了一些特殊…

typescript的入门到吐槽:看了typescript,发现前端真的卷,

typescript TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集&#xff0c;而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript 与 JavaScript 的区别 其实就是对JavaScript的封装&#xff0c;把一个弱类型语言封…

“王翦五讨赏地,萧何三贬其身”的背后,正是智者安身的处世之道

冯子曰&#xff1a;智者&#xff0c;术所以生也&#xff1b;术者&#xff0c;智所以转也。 智慧的人&#xff0c;从不蛮行横性&#xff0c;而是懂得如何在世道和自我之间谋得最佳的处境。 01、王翦五讨赏地 战国时期&#xff0c;秦始皇派王翦率六十万大军攻打楚国&#xff0…

【SpringBoot】 什么是springboot(一)?如何搭建springboot项目?

文章目录 SpringBoot第一章1、什么是springboot1、回顾ssm项目搭建流程2、springboot项目的优点2、搭建springboot项目方式1:方式2:第二章1、基本配置1、热部署2、注解3、端口配置application.properties特点application.yml特点注意4、环境配置springboot中的配置文件要求5、…

深度学习——前馈全连接神经网络

前馈全连接神经网络 1.导入需要的工具包2.数据导入与数据观察&#xff08;1&#xff09;读取csv的文件信息&#xff1a;&#xff08;2&#xff09;训练数据前5行&#xff08;3&#xff09;打印第一个图&#xff08;4&#xff09;观察数据中的信息&#xff08;5&#xff09;查看…

JAVA版本的ATM编程问题记录

前段时间用C语言写了个银行ATM系统&#xff0c;还写了一篇文章记录了一些&#xff0c;C语言的ATM文章。后来又用IDEA写了一个JAVA版本的银行ATM。有人就会问为啥浪费这个时间写ATM呢&#xff1f;&#x1f9d0;其实是我本科代码没学好&#xff0c;所以现在想利用比较熟悉的ATM系…

第 8 章 电机测速(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.3.3 电机测速01_理论 测速实现是调速实现的前提&#xff0c;本节主要介绍AB相增量式编码器测速原理。 1.概…

faad2交叉编译——aac解码为pcm,解决faad单通道转双通道问题

FAAD是比较成熟高效的开源AAC解码库&#xff0c;这里用于解码AAC生成PCM数据&#xff0c;用于音频播放。这里因为faad库&#xff0c;会将单通道转化为双通道踩了些坑&#xff0c;所以记录一下。 我使用的是2.11.0版本&#xff0c;貌似往前的版本没有使用CMake&#xff0c;需要c…

如何在电脑中使用微信?pc版微信和手机版有什么区别

微信简介 微信是一个社交和商业强国&#xff0c;自成立以来一直在持续增长。该应用程序在2023年拥有13亿月活跃用户&#xff0c;尽管在某些国家对其使用存在一些阻力。 使用微信网页版可以获得的好处 尽管微信为iOS和Android智能手机提供了出色的应用程序&#xff0c;但仍有时…

面向初学者:什么是图数据库

当数据成为关键生产要素&#xff0c;许多企业开始面临利用海量数据辅助企业复杂决策的现实难题。而在数据爆发式增长&#xff0c;关联复杂度激增的趋势下&#xff0c;图数据库成为企业加工关联数据、挖掘隐藏价值、智能决策升级的关键技术之一&#xff0c;在全球范围内开始被使…

sql优化思路

sql的优化经验 这里解释一下SQL语句的优化的原理 1.指明字段名称&#xff0c;可以尽量使用覆盖索引&#xff0c;避免回表查询&#xff0c;因此可以提高效率 2.字面意思&#xff0c;无需过多赘述。索引就是为了提高查询效率的。 3.图中两条sql直接可以使用union all 或者 uni…

一文盘点 Partisia Blockchain 生态 4 月市场进展

Partisia Blockchain 是一个以高迸发、隐私、高度可互操作性、可拓展为特性的 Layer1 网络。通过将 MPC 技术方案引入到区块链系统中&#xff0c;以零知识证明&#xff08;ZK&#xff09;技术和多方计算&#xff08;MPC&#xff09;为基础&#xff0c;共同保障在不影响网络完整…

万字长文详解Typora+PicGo+Github/Gitee的配置教程

文章目录 1.前言1.1 Typora简介1.2 引入1.2.1 移动本地图片位置导致图片加载失败问题解决方案反思&#xff1a; 1.2.2 CSDN导入图片转存失败1.2.3 思考 1.3 图床工具1.4 使用原因1.5 总结 2.安装教程2.1 Typora安装教程2.1.1 下载安装包方式1&#xff1a;百度网盘方式2&#xf…

【Python爬虫】使用request和xpath爬取高清美女图片

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 &#x1f388; urlib.request &#x1f525;具体的方法 ✈ lxml &#x1f525;xpath的基本语法 1. 基本路径 2. 选择节点 3. 谓语&#xff08;Predicates&#xff09; 4. 通配符 5. 选择多个路径 6. 函数 …

鸿蒙内核源码分析(工作模式篇) | CPU的七种工作模式

本篇说清楚CPU的工作模式 工作模式(Working mode) 也叫操作模式&#xff08;Operating mode&#xff09;又叫处理器模式&#xff08;Processor mode&#xff09;&#xff0c;是 CPU 运行的重要参数&#xff0c;决定着处理器的工作方式&#xff0c;比如如何裁决特权级别和报告异…

文献速递:深度学习医学影像心脏疾病检测与诊断--基于深度学习的低剂量SPECT心肌灌注图像去噪:定量评估与临床表现

Title 题目 Deep learning–based denoising of low‑dose SPECT myocardialperfusion images: quantitative assessment and clinical performance 基于深度学习的低剂量SPECT心肌灌注图像去噪&#xff1a;定量评估与临床表现 01 文献速递介绍 单光子发射计算机断层扫描&a…

Options API:选项式 API改成Composition API:组合式 API的留言板

让我欢喜让我忧 改成Composition API:组合式 API的代码&#xff0c; <template><!-- start --><span class"span_checkbox">操作<input type"checkbox" v-model"showInput" value"操作" /></span><…