Ajax 和 Servlet 联动
Posted java小小小小栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax 和 Servlet 联动相关的知识,希望对你有一定的参考价值。
AJAX, Asynchronous javascript and XML。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
简单封装 Ajax 工具类。
// ajax.js
function getXmlhttpRequset() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
return xmlHttp;
}
function ajax(param) {
// 1.获取xmlHttpRequset
var xmlHttp = getXmlhttpRequset();
// 2.设置请求参数
xmlHttp.open(param.method, param.url);
// 设置请求头
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// 3.发送请求
if (param.method == "POST") {
xmlHttp.send(param.data);
} else if (param.method == "GET") {
xmlHttp.send();
}
// 4.监听请求状态
xmlHttp.onreadystatechange = function () {
// readyState,Ajax响应状态;status,服务端响应状态。
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
// 接收 xml 数据。
console.log("XML: " + xmlHttp.responseXML)
// 6、调用回调函数
param.callback(xmlHttp.responseText);
}
}
}
服务端接收数据和响应。(部分代码)
"/AjaxServlet/*") (
public class AjaxServlet extends DispacherServlet {
public void hello(HttpServletRequest request, HttpServletResponse response) {
// 接收服务端原数据
try {
BufferedReader reader = request.getReader();
System.out.println(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
// 接收服务端数据,application/x-www-form-urlencoded
String username = request.getParameter("username");
String age = request.getParameter("age");
System.out.println(username + "\t" + age);
// 响应文本信息到客户端
try {
response.getWriter().write("响应文本。");
// response.getWriter().write("<html><body><p>Hello</p> <div>Ajax</div></body></html>");
} catch (IOException e) {
e.printStackTrace();
}
}
}
index.jsp。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript">
window.onload = function () {
document.getElementById("button1").addEventListener("click", function () {
var param = {
// method: "GET",
// url:"AjaxServlet/hello?username=zs&age=23",
method: "POST",
url:"AjaxServlet/hello",
data:"username=zs&age=23",
callback: function (res) {
console.log(res);
document.getElementById("div1").innerText = res;
}
};
ajax(param);
})
}
</script>
</head>
<body>
<button id="button1">异步访问AjaxServlet</button>
<div id="div1" style="border: antiquewhite solid 1px;width: 100px;height: 100px;"></div>
</body>
</html>
以上是关于Ajax 和 Servlet 联动的主要内容,如果未能解决你的问题,请参考以下文章