AJAX(Asynchronous JavaScript and XML) 是一种用于创建快速动态网页的技术。
AJAX 通过JS发起异步请求,使网页实现异步更新,无需重新加载整个网页的情况下更新部分网页。
AJAX 依赖 XMLHttpRequest
XMLHttpRequest 用于在后台与服务器交换数据
JavaScript代码
//IE7+、Firefox、Chrome、Safari 以及 Opera
var XHRObj = new XMLHttpRequest();
//IE7以前的老版本浏览器
var XHRObj = new ActiveXObject("Microsoft.XMLHTTP");
//因此需要使用if判断浏览器的版本并写两个方法以适应不同情况
var XHRObj;
if (window.XMLHttpRequest){
XHRObj = new XMLHttpRequest();
}
else{
XHRObj = new ActiveXObject("Microsoft.XMLHTTP");
}
属性 | 描述 |
---|---|
onreadystatechange | readyState改变就会调用 |
readyState | 0请求未初始化 1连接建立 2请求接收 3请求处理 4请求和响应完成 |
status | 200已就绪 400未找到 |
XHRObj.open(method,url,async);
XHRObj.send();
参数 | 描述 |
---|---|
method | 请求类型 GET/POST |
url | 文件位置 |
async | 请求同步/异步 false/true |
//获得字符串响应
XHRObj.responseText
//获得XML响应
XHRObj.responseXML
//判断响应已就绪且连接到了指定服务器
XHRObj.onreadystatechange = function(){
if(XHRObj.readyState == 4 && XHRObj.status == 200){
XHRObj.responseText;
}
}
Servlet
package com.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class AjaxServlet extends BaseServlet {
protected void jsAjax(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String info = "HelloWorld!";
response.getWriter().write(info);
}
}
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<servlet>
<servlet-name>AjaxServlet</servlet-name>
<servlet-class>com.servlet.AjaxServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AjaxServlet</servlet-name>
<url-pattern>/AjaxServlet</url-pattern>
</servlet-mapping>
</web-app>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>This is for test</title>
<script type="text/javascript">
function ajax() {
var XHRObj;
//判断浏览器
if (window.XMLHttpRequest){
XHRObj = new XMLHttpRequest();
}
else{
XHRObj = new ActiveXObject("Microsoft.XMLHTTP");
}
//打开servlet文件,执行方法
XHRObj.open("GET","http://localhost:8080/javaWeb_Repository_war_exploded/AjaxServlet?action=jsAjax");
//绑定
XHRObj.onreadystatechange = function() {
if(XHRObj.readyState == 4 && XHRObj.status == 200){
document.getElementById("here").innerHTML = XHRObj.responseText;
}
};
XHRObj.send();
}
</script>
</head>
<body>
//接收对象
<div id = "here"><h1></h1></div>
<button type = "button" onclick="ajax()">Click!</button>
</body>
</html>
欢迎在评论区留言
感谢浏览
本文地址:https://blog.csdn.net/Xxy605/article/details/107375757
如对本文有疑问, 点击进行留言回复!!
微信小程序wx.scanCode扫描条形码,偶尔出现条形码不正确导致查询失败
Android 入门第七讲01-数据存储(数据存储概述,文件存储(raw和asserts目录读写,data/data/包名目录读写,sdcard目录读写),SharedPreferences读写)
vue-axios系列:axios拦截器,配置请求头,配置请求参数
Vuejs 针对 安卓低版本 、ios9.x 不兼容 ES6语法导致失效解决方法
网友评论