AJAX
什么是AJAX?
AJAX=Asynchronous Java and XML 异步的JavaScript和XML。
它不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
AJAX是XMLHttpRequest 对象
B/S:未来的主流,并且会爆发式的持续增长。
什么时候使用它?
注册时,自动检测用户名是否存在。
登陆,提示用户密码错误。
删除数据,将行ID发送后台,在数据库中删除同时在页面中把Dom也同时删掉。
项目中的AJAX的使用
这是一个检查重名的小Demo,当名字重复的时候,确认按钮会被禁用。
前端代码
$("input[name='majorName']").on('blur', function () {
this.style.border = "1px solid #d2d2d2"
var result = majorNameVerify(this.value);// 表单提交和文本框失去焦点共用一个方法进行校验
// 如果有返回值
if (result) {
layer.msg(result, {icon: 0})
this.style.border = "1px solid red"
} else {
var url = "BaseServlet.do?servlet=MajorServlet" +
"&method=checkName&majorName=" + this.value;
$.get(url, function (data) {
//data是后台返回的数据
if (data == "true") {
$("button").removeClass("layui-btn-disabled")
.attr("disabled", false);
} else {
$("button").addClass("layui-btn-disabled")
.attr("disabled", true);
}
})
}
});
后端代码
后端进行查重,如果count为0,向前端发送"true",不为0的话,会发送"false"
public void checkName(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String majorName = request.getParameter("majorName");
logger.debug("majorName"+majorName);
Map<String, Object> conditions = new HashMap<>();
conditions.put("majorName", majorName);
logger.debug("conditions="+conditions);
// 统计满足条件的记录数
int count = majorService.searchCount(conditions);
logger.debug("conditions" + conditions);
logger.debug("count" + count);
if (count == 0) {
response.getWriter().print("true");
} else {
response.getWriter().print("false");
}
}