JavaWeb15-HTML篇笔记(三)

时间:2022-01-29 13:27:05
1.1 案例三:使用JQuery完成仿百度的信息提示:1.1.1 需求:
在一个搜索页面中,键盘输入一些信息,在文本框下面给出一些提示信息(需要从服务器端进行查询的).
JavaWeb15-HTML篇笔记(三)
1.1.2 分析:1.1.2.1 步骤分析:
Ø 创建一个数据库和表:
Ø 设计一个页面
Ø 文本框绑定一个事件.keyup
Ø 在keyup所触发函数中:
n 获得文本框的值.
n 将这个值异步提交到服务器.$.post();
n 提交到Servlet:
u 接收参数:
u 调用业务层--调用DAO: select * from .. Where xx like ?;
u 查询之后页面跳转把数据显示到一个表格中.
1.1.3 代码实现:
创建数据库和表:
CREATE TABLE words(
id INT PRIMARY KEY AUTO_INCREMENT,
word VARCHAR(20)
);
设计一个页面:
<center><h1>黑马一下</h1></center>
<center><input type="text" name="word" id="word" style="width:300px"/><input type="button" value="黑马一下"><center>
<div id="d1" style="display:none;position:absolute;top:110px;left:494px;border:1px solid blue;width:300px;height:200px;"></div>
为文本框绑定事件:编写jquery代码
$(function(){
        // 为文本框绑定事件:
        $("#word").keyup(function(){
                // 获得文本框的值:
                var val = $(this).val();
                if(val != ""){
                        // 异步将这个值提交给服务器:
                        $.post("/WEB15/ServletDemo5",{"val":val},function(data){
                                $("#d1").show();
                                $("#d1").html(data);
                        });
                }else{
                        $("#d1").hide();
                }
        });
});


1.2 使用JQuery完成一个省市联动的案例:使用XML作为响应内容:1.2.1 需求:
JavaWeb15-HTML篇笔记(三)
完成省市联动的效果.市的信息从后台服务器端获得.通过AJAX使用这样的功能!!!
1.2.2 分析:1.2.2.1 技术分析:
【XML作为响应文本】
List<City> list = new ArrayList<City>();
list.add(new City(1,”哈尔滨”));
list.add(new City(2,”齐齐哈尔”));
list.add(new City(3,”牡丹江”));
将list集合转出XML:
<list>
   <city>
      <name>哈尔滨</name>
   </city>
   ...
</list>


使用XStream工具:将Java对象转成XML.
【XStream的概述】
Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将javaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁琐。
【XStream的入门】
引入xstream需要的jar包:

入门:
        @Test
        public void demo1(){
                List<City> list = new ArrayList<City>();
                list.add(new City(1,"哈尔滨"));
                list.add(new City(2,"齐齐哈尔"));
                list.add(new City(3,"牡丹江"));
               
                XStream stream = new XStream();
               
                // 设置标签的别名:
                stream.alias("city", City.class);
               
                // 设置子标签作为属性进行显示:
                stream.useAttributeFor(City.class, "id");
               
                String xml = stream.toXML(list);
               
                System.out.println(xml);
        }


1.2.2.2 步骤分析:
Ø 设计页面:
Ø 为第一个下拉列表绑定事件:change
Ø 在change事件触发的函数中:提交数据到Servlet.
Ø 在Servlet中:
n 接收数据:接收提交的省份的信息.
n Map<String,List<City>>
n 将集合转成XML,将XML写回到浏览器.
Ø 在回调函数中获得XML中的市的信息.
Ø 生成一个option元素,将option元素添加到第二个下拉列表中。
1.2.3 代码实现:
设计一个页面:
<h1>省市联动的案例</h1>
<select id="province">
        <option value="">--请选择--</option>
        <option value="黑龙江">黑龙江</option>
        <option value="吉林">吉林</option>
        <option value="辽宁">辽宁</option>
</select>
<select id="city">
        <option value="">--请选择--</option>
</select>
为第一个列表绑定事件:
$(function(){
        // 为第一个列表绑定事件:
        $("#province").change(function(){
                // 获得下拉列表选中的值
                var val = $(this).val();
                // alert(val);
                $.post("/WEB15/ServletDemo6",{"province":val},function(data){
                        // alert(data);
                        $("#city").html("<option>--请选择--</option>");
                       
                        $(data).find("city").each(function(){
                                var id = $(this).children("id").text();
                                var name = $(this).children("name").text();
                                // alert(name);
                                var op = "<option>"+name+"</option>";
                                $("#city").append(op);
                        });
                });
        });
});


1.3 使用Jquery完成省市联动的案例:使用JSON作为响应数据:1.3.1 需求:
JavaWeb15-HTML篇笔记(三)
完成省市联动的效果.市的信息从后台服务器端获得.通过AJAX使用这样的功能!!!
1.3.2 分析:1.3.2.1 技术分析:
【JSON的概述】
JSON的概念:
JavaWeb15-HTML篇笔记(三)
JSON的案例:
* {key:value,key:value}
   * {id:1,name:aaa}
* [{key:value,key:value},{key:value,key:value}]
   * [{id:1,name:aaa},{id:2,name:bbb}]
将对象转成JSON:
使用JSONLIB将Java中对象或集合转成JSON.
* JSONArray                :将数组或List集合转成JSON的.
* JSONObject        :将对象或Map集合转成JSON的.
1.3.3 代码实现: