前端html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// 创建 XMLHttpRequest 对象
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var count = 1;
function fun() {
// 建立连接
xmlhttp.open("GET", "ajaxServlet?username=xqx&count="+count,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
//XMLHttpRequest 的状态
/**
*
* readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status:
200: "OK"
404: 未找到页面
*/
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
count++;
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
}
</script>
</head>
<body>
<button id="but1" type="button" onclick="fun()">发送ajax请求</button>
<input type="text" />
<div id="myDiv"></div>
</body>
</html>
后端servlet代码: (注意:继承HttpServlet类需要导入servlet-api.jar)
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* createAuthor:xingquanxiang
* createTime:2019/8/5 13:44
* description:
*/
@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String count = req.getParameter("count");
int count1 = Integer.parseInt(count);
System.out.println("username = " + username);
resp.setContentType("text/html; charset=utf-8");
if(count1%2==1) {
resp.getWriter().write("hello:" + username);
}else{
resp.getWriter().write("hello:" + "zyx");
}
System.out.println("count = " + count);
}
}
代码写完,启动tomcat:
执行结果如下:
成功实现局部请求刷新!