javaweb(ajax+json实现自动补全)

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();//关闭👌
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值