1 什么是AJAX?
AJAX = Asynchronous JavaScript and XML
。AJAX
是一种用于创建快速动态网页的技术。AJAX
通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。传统的网页(不使用 AJAX
)如果需要更新内容,必须重载整个页面。
![在这里插入图片描述](https://img-blog.csdnimg.cn/7c36d1db37e54198a5404cc8c503275b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a-E55Sf5LqO6buR5pqX5Lit55qE5YWJ,size_12,color_FFFFFF,t_70,g_se,x_16)
2 原生JS实现AJAX
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","ajaxServlet?username=tom",true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var responseText = xmlhttp.responseText;
alert(responseText);
}
}
3 JQeury实现AJAX
- $.ajax()
* 语法:$.ajax({键值对});
$.ajax({
url:"ajaxServlet1111" ,
type:"POST" ,
data:{"username":"jack","age":23},
success:function (data) {
alert(data);
},
error:function () {
alert("出错啦...")
},
dataType:"text"
});
- $.get():发送get请求
* 语法:$.get(url, [data], [callback], [type])
* 参数:
* url:请求路径
* data:请求参数
* callback:回调函数
* type:响应结果的类型
- $.post():发送post请求
* 语法:$.post(url, [data], [callback], [type])
* 参数:
* url:请求路径
* data:请求参数
* callback:回调函数
* type:响应结果的类型
4 AJAX小项目:按钮注销用户
$(function () {
$("#btn-logout").click(function () {
$.ajax({
url: "${pageContext.request.contextPath}/delete",
type: "POST",
data: {
"username": $("#username").val(),
"password": $("#password").val(),
"checkCode": $("#checkCode").val()
},
success: function (data) {
alert(data);
},
error: function () {
alert("删除失败!请核对学号、密码和验证码!!!");
},
dataType: "text"
})
});
})
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
String checkCode = req.getParameter("checkCode");
System.out.println(username + " " + password + " " + checkCode);
HttpSession session = req.getSession();
String CHECKCODE = (String) session.getAttribute("CHECKCODE");
session.removeAttribute("CHECKCODE");
if (!CHECKCODE.equalsIgnoreCase(checkCode)) {
resp.getWriter().write("验证码错误!");
return;
}
UserService userService = new UserServiceImpl();
User user = userService.findOneByNameAndPass(username, password);
System.out.println(user);
if (user.getUser_name() == null) {
resp.getWriter().write("该用户不存在!");
return;
}
if (username.equals(user.getUser_name()) && password.equals(user.getUser_pass())) {
boolean flag = userService.delete(username);
if (flag) {
resp.getWriter().write("删除成功,今后不会自动安全上报!");
return;
} else {
resp.getWriter().write("删除失败,服务器内部错误,请联系管理员手动删除!");
return;
}
} else {
resp.getWriter().write("用户名或密码错误!");
return;
}