javapackage com.csdn.servlet; import jakarta.servlet.GenericServlet; import jakarta.servlet.ServletException; import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletResponse; import jakarta.servlet.annotation.WebServlet; import java.io.IOException; import java.io.PrintWriter; //演示Ajax @WebServlet("/h09") public class AjaxServlet extends GenericServlet { @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { String uname = servletRequest.getParameter("uname"); uname = uname.toUpperCase(); PrintWriter out = servletResponse.getWriter(); out.println(uname); out.flush(); } }
html<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax01</title> <script> let xmlHttpRequest; function sendAjax01() { let uname = document.getElementById("uname").value; xmlHttpRequest = new XMLHttpRequest(); xmlHttpRequest.open("Get","h09?uname="+uname,true);//Get:请求方式 h09:请求的目的地 true:异步请求 //onreadystatechange:当状态发生改变的时候调用sendAjax01CB //状态取值有 0-4 ,共 5 个,我们感兴趣的是 4 //0 表示 xmlHttpRequest未创建 //1 表示开始发送请求 //2 表示发送请求完成 //3 表示开始接收响应 //4 表示接收响应成功,客户端成功解析服务器返回的响应 xmlHttpRequest.onreadystatechange = sendAjax01CB; //CB:call back 回调函数 //发送请求 xmlHttpRequest.send(); } function sendAjax01CB() { if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) { //获取响应文本 let msg = xmlHttpRequest.responseText; document.getElementById("uname2").innerText = msg; } } </script> </head> <body> uname:<input type="text" id="uname"/> <input type="button" value="发生异步请求" onclick="sendAjax01()"><br/> 服务器响应回来的内容:<span id="uname2"> </span> </body> </html>
ajax的常规操作(原始方式)
丁总学Java2023-11-04 9:50
相关推荐
数聚天成DeepSData7 小时前
外贸海关进出口数据去哪免费下载?从统计到明细的查找指南半夜里咳嗽的狼7 小时前
组件进侧栏就变形?用 CSS Container Queries 把响应式边界收回组件xx24067 小时前
前端性能优化笔记带娃的IT创业者7 小时前
单文件架构的极致美学:深入解析 Bento 的 HTML 幻灯片技术实现muddjsv7 小时前
CSS 值的完整计算过程:指定值、计算值、使用值、实际值与动态依赖恋猫de小郭7 小时前
KotlinLLM 开源 ,一个可以在运行时自己生成永久 Kotlin 代码的 Agent 库名字还没想好☜7 小时前
React createPortal 实战:模态框逃出 overflow:hidden、事件冒泡与焦点管理用户059540174468 小时前
Playwright测试AI记忆存储踩坑实录:这个时序问题让我排查了6小时IT_陈寒8 小时前
Redis踩了个大坑,原来DEL命令也会卡住整个实例一个水瓶座程序猿.8 小时前
基于Spring AI RAG 的AI知识库前端交互实现