1.什么是Ajax
即异步的 JavaScript 和 XML,是一种用于创建快速动态网页的技术;
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
使用AJAX则不需要加载更新整个网页,实现部分内容更新
2.Ajax知识剖析
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!-- 引入jQuery的类库 -->
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<!-- 另起一个script块 -->
<script type="text/javascript">
$(function(){
//给文本框添加失焦事件
$("#sname").blur(function(){
//获取文本框 的值
var name=$("#sname").val();
//一、$.ajax()
/* $.ajax({
url:"vname.do",//请求地址 servlet
data:{iname:name},//"iname="+name, 请求参数(传递到服务器)
type:"post",//请求参数
dataType:"text",//预期服务器可能返回的数据类型
success:function(data){//成功的回调函数 data是服务器返回的数据
//alert(data);
$("#aa").html(data);//innerHTML 给span赋值
},
error:function(){//失败的回调函数
alert("有误");
}
}); */
//二、$.post() url,data,success,[dataType]
$.post("vname.do", {iname:name}, function(data) {
$("#aa").html(data);
})
});
})
</script>
</head>
<body>
<h2>使用jQuery的ajax即时判断用户名是否可用</h2>
用户名:<input type="text" id="sname"><span style="color:red;" id="aa"></span>
<hr color="red">
<input>
</body>
</html>
3.json实现自动补全(此处需要引入fastjson-1.2.47.jar)
public class AutoFillServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码方式
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html; charset=UTF-8");
//获取out
PrintWriter out=resp.getWriter();
//接收参数
String name=req.getParameter("iname");
//调用查询全部的方法👌
UserDao ud=new UserDao();
//用户集合 模糊查询的方法
List<User> ls=ud.getAll(name);
//将集合--->String
String str=JSON.toJSONString(ls);
//把响应输送到客户端
out.print(str);
out.flush();//刷新
out.close();//关闭👌
}
}