浅谈Java之AJAX

server/2025/1/23 12:34:25/

一、基本介绍

在Java开发中,AJAX(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术,它允许网页在不重新加载整个页面的情况下与服务器进行交互。

二、关键点和示例

1. AJAX的基本原理

AJAX通过JavaScript的XMLHttpRequest对象或现代的fetch API与服务器进行异步通信。它允许网页在后台与服务器交换数据,并根据返回的数据更新页面的局部内容。

2. Java后端与AJAX的结合

在Java Web开发中,通常使用Servlet、Spring MVC或其他框架来处理AJAX请求。以下是两种常见的实现方式:

2.1 使用Servlet处理AJAX请求

Servlet是Java Web开发的基础,可以用来处理HTTP请求。

示例代码:

1、前端HTML和JavaScript代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>AJAX Example</title><script>function fetchData() {var xhr = new XMLHttpRequest();xhr.open("GET", "MyServlet", true); // 请求Servletxhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {document.getElementById("result").innerHTML = xhr.responseText;}};xhr.send();}</script>
</head>
<body><button onclick="fetchData()">Fetch Data</button><div id="result"></div>
</body>
</html>

2、Java Servlet代码:

java">import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");response.getWriter().write("<h1>Hello from Servlet</h1>");}
}

2.2 使用Spring MVC处理AJAX请求

Spring MVC是更现代的Java Web开发框架,支持注解和更简洁的开发方式。

示例代码:

1、前端HTML和JavaScript代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>AJAX Example</title><script>function fetchData() {fetch('/getData').then(response => response.text()).then(data => {document.getElementById("result").innerHTML = data;});}</script>
</head>
<body><button onclick="fetchData()">Fetch Data</button><div id="result"></div>
</body>
</html>

2、Spring MVC Controller代码:

java">import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;@Controller
public class MyController {@GetMapping("/getData")public String getData() {return "<h1>Hello from Spring MVC</h1>";}
}

3. 处理JSON数据

在实际开发中,通常使用JSON作为数据交换格式。Java后端可以使用Jackson或Gson库来处理JSON数据。

示例:

1、前端JavaScript代码:

function fetchData() {fetch('/getData').then(response => response.json()).then(data => {document.getElementById("result").innerHTML = `Name: ${data.name}, Age: ${data.age}`;});
}

2、Spring MVC Controller代码:

java">import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {@GetMapping("/getData")public User getData() {return new User("John Doe", 30);}
}class User {private String name;private int age;public User(String name, int age) {this.name = name;this.age = age;}// Getters and Setters
}

4. 总结

  • 前端:使用JavaScript的XMLHttpRequestfetch API发起异步请求。

  • 后端:使用Servlet或Spring MVC等框架处理请求,并返回数据(可以是HTML、JSON等格式)。

  • 数据交换格式:JSON是常用的数据交换格式,因为它轻量且易于解析。


http://www.ppmy.cn/server/160734.html

相关文章

Spring 中 Bean 是什么?从类到 Bean 的核心概念解析

1. 什么是 Spring Bean&#xff1f; Bean 是由 Spring IoC 容器管理的对象&#xff0c;它是 Spring 应用程序的核心组件&#xff0c;用来实现各种业务逻辑和功能。 在 Spring 中&#xff0c;Bean 是一种特殊的 Java 对象&#xff0c;Spring 容器负责管理它的生命周期、依赖注入…

Powershell-2

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;powershell&#xff08;2&#xff09;_哔哩哔哩_bilibili 一 、Powershell使用外部命令 在 Powershell 中&#xff0c;可以执行一些外部命令&…

算法面试准备 - 手撕系列第一期 - Softmax

算法面试准备 - 手撕系列第一期 - Softmax 目录 算法面试准备 - 手撕系列第一期 - SoftmaxSoftmax原理图Softmax实现代码 - 复杂版和简单版本(推荐简单版本)参考 Softmax原理图 Softmax原理图 Softmax实现代码 - 复杂版和简单版本(推荐简单版本) 方法一&#xff1a;循环计算 …

分支与循环(下)

goto语句 C语⾔提供了⼀种⾮常特别的语法&#xff0c;就是 goto 语句和跳转标号&#xff0c; goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。 适用场景 跳出多层循环&#xff1a;在处理多层嵌套循环时&#xff0c;如果需要在满足某个条件时从内层循环直接跳出到外层…

MyBatis最佳实践:SQL注入问题

什么是 SQL 注入&#xff1a; SQL 注入是一种注入攻击&#xff0c;可以执行恶意 SQL 语句&#xff0c;它将任意 SQL 代码插入数据库查询&#xff0c;使攻击者能够完全控制 WEB 应用程序后面的数据库服务器&#xff0c;攻击者可以使用 SQL 注入漏洞绕过程序安全措施可以绕过网页…

解码策略(Top-k Top-p Temperature)

0.简介 在大模型训练好之后,如何对训练好的模型进行解码(decode)是一个火热的研究话题。 一般给模型传入的解码参数如下所示。 {"top_k": 10,"temperature": 0.95,"num_beams": 1,"top_p": 0.8,

基于微信小程序的驾校预约小程序

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

计算机视觉算法实战——实体物体跟踪

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​ ​ 1. 领域介绍✨✨ 实体物体跟踪&#xff08;Object Tracking&#xff09;是计算机视觉领域中的一个重要研究方向&#x…