@weidong
2017-10-20T15:42:59.000000Z
字数 2782
阅读 311
JavaWeb
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
局部更新(刷新)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>My JSP 'ajax3.jsp' starting page</title>
<script type="text/javascript">
function alterH1() {
//1. 创建XMLHTTPRequest对象
var xmlHttp = new XMLHttpRequest();
//2. 设置请求的监听事件
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
// 获取的h1 控件
var h1 = document.getElementById("h1");
// 获取到请求后的结果
var text = xmlHttp.responseText;
// 将获取到的内容设置到h1 控件中
h1.innerHTML = text;
}
};
//3. 打开和服务器的连接
xmlHttp.open("GET", "http://localhost/AJAX/txt/1.txt",true);
//4. 发送请求
xmlHttp.send();
};
</script>
</head>
<body>
<button onclick="alterH1()" type="button">点我修改内容</button>
<h1 id="h1">我是内容</h1>
</body>
</html>
var xmlhttp=null;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}else if (window.ActiveXObject){
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
2.注册请求的监听事件,当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。readyState 属性存有 XMLHttpRequest 的状态信息(5个)
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
//处理结果
}
}
3.打开和服务器的连接
4.发送请求
send(String) 将请求发送到服务器。
什么时候使用GET POST ?
案例演示,使用AJAX访问Servlet
"http://localhost/AJAX/MyServlet2?name=lisi"
2.对于POST请求方式
xmlhttp.open("POST","http://localhost/AJAX/Aservlet2");
xmlhttp.send("name=lisi");
注意:如果是POST请求方式,还需要设置一个http请求头。
xmlhttp.setRequestHeader("","");
xmlhttp.open("POST","http://localhost/AJAX/Aservlet2");
xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
xmlhttp.send("name=list");
// Aservlet2
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
response.getWriter().write("hello "+name);
response.getWriter().close();
}