Ajax学习

15.Ajax
    一、Ajax
        1.概念:ASynchronous JvaScript And XML   异步的JavaScript和XML
            (1)异步和同步:客户端和服务器端相互通信的基础上
同步:客户端必须等待服务器端的响应,在等待的期间客户端不能做其他的操作
异步:客户端不需要等待服务器端的响应,在服务器处理请求的过程中,客户端可以进行其他的操作
        2.实现方式
            (1)原生JS实现方式(了解)
            (2)JQuery实现方式
                $.ajax()
                    语法:$.ajax({键值对});

 //使用$.ajax()发送请求
            $.ajax({
                url:"ajaxServlet",//请求路径
                type:"post",//请求方式
                //data:"name=Tom&age=23",//请求参数
                data:{"name":"Tom","age":23},
                success:function (data) {
                    alert(data);
                },//响应成功后的回调函数
                error:function () {
                    alert("出错了...")
                },//表示如果请求错误响应出现错,会执行的函数
                dataType:"text"//设置接受到相应数据的格式
            });


                $.get()
                    发送get请求
                    语法:$.get(url,[data],[callback],[type])
url:请求路径
data:请参数
callback:回调函数
type:响应结果的类型

function fun() {
            //使用$.get()发送请求
            $.get("ajaxServlet",{name:"rose"},function (data) {
                alert(data);
            },"text");
        }


                $.post()
                    发送post请求

 //使用$.post()发送请求
            $.post("ajaxServlet",{name:"rose"},function (data) {
                alert(data);
            },"text");


    二、JSON
        1.感念:JavaScript Object Notation     JavaScript对象表示法
json现在多用于存储和交换文本信息的语法
进行数据传输
json比xml文件更小、更方便、传输效率更高
        2.语法
            (1)基本规则
                数据在名称/键值对中:json数据集是由键值对构成的
键用引号(单双)都行引起来,也可以不用使用引号;值的取值类型:数字(整数或浮点数)  字符串(在双引号中)   逻辑值(true或false)    数组(在方括号中){"persons":[{}],{}}  对象(在花括号中){"name":"张三","age":23,"gender":"男","address":{"province":"扬州"....}};    null
数据由逗号分隔:多个键值对有逗号分隔
花括号保存对象:使用{}定义json格式
方括号保存数组:[ ]

            (2)获取数据
                json对象.键名
                json对象["键名"]
                数组对象[索引]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //1.定义基本格式
        var person={"name":"张三",age:23,'gender':true};


        var ps=[
            {"name":"张三",age:23,'gender':true},
            {"name":"李四",age:18,'gender':true},
            {"name":"王五",age:20,'gender':false}
        ];
        //获取person对象中所有的键和值
        //for  in  循环
        /*for ( var key in person){
            //alert(key+":"+person.key);
            alert(key+":"+person[key]);
        }*/
        //获取ps中的所有值
        for (var i=0;i<ps.length;i++){
            var p=ps[i];
            for (var key in p){
                alert(key+":"+p[key]);
            }
        }
    </script>
</head>
<body>

</body>
</html>


        JSON解析器:Jsonlib,Gson,fastjson,Jackson
        3.JSON数据和Java对象的相互转换
            (1)JSON转为Java对象
                使用步骤
                    导入jackson  jar包
                    创建Jackson核心对象 ObjectMapper
                    调用 ObjectMapper的相关方法进行转换

readValue(json字符串数据,Class)


            (2)Java对象转为JSON
                使用步骤
                    导入jackson  jar包
                    创建Jackson核心对象 ObjectMapper
                    调用 ObjectMapper的相关方法进行转换

   /**
         * 转换方法:writeValue(参数1,obj):
         *      参数1:
         *             File:将obj对象转换为JSON字符串,并保存到指定文件中
         *             Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
         *             OutputStream:将对象转为json字符串,并将json数据填充到字节输出流中
         * writeValueAsString(obj):将对象转为json字符串
         */


注解:@JsonIgnore:排除属性
@JsonFormat:属性值的格式化


            (3)复杂的Java对象转换
                list
                map
        response.setContentType("application/json;charset=UTF-8");
    三、redis(一款数据库软件)
        1.概念
            redis是一款高性能的NOSQL系列的非关系性的数据库
        2.下载安装
            (1)官网:https://redis.io
            (2)中文网:https://www.redis.net.cn
            (3)解压可以直接使用
                redis.windows.conf:配置文件
                redis-cli.exe:redis的客户端
                redis-server.exe:redis的服务器端
        3.命令操作
            (1)redis数据结构
                redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构
            (2)6
            (3)通用命令: keys *:查询所有的键
type key:查看value数据类型
del key:删除指定的键和值
        4.持久化操作
            (1)redis是一个内存数据库,当服务器重启,数据会丢失,将redis内存中的数据持久化保存到硬盘中
            (2)redis持久化机制:
                RDB:默认方式,不需要进行配置
在一定的间隔时间中,检测key的变化情况,然后持久化数据
                    save  900  1
                    save  300  10
                    save  60  10000
                    重新启动redis并指定配置文件名称
                        
                AOF:日志记录的方式,可以记录每一条命令的操作,可以每一次命令操作后,持久化数据
                    编辑redis.windows.conf文件
appendonly yes  (默认为no,关闭aof,需要开启)
                    子主题 2
        5.使用Java客户端操作redis
        6.redis支持的键值数据类型
            (1)字符串类型  String
                存储:set key value
                获取:get key
                删除:del key
            (2)哈希表类型  hash:map格式
                存储:hset key field value
                获取:hget key field:获取指定的field对应的值
hgetall key:获取所有的field和value
                删除:hdel key field
            (3)列表类型  list  :linkedlist格式
                可以添加一个元素到列表的头部或尾部  左(lpush)  右(rpush)
存储:lpush key value;   rpush key value
                获取:lrange key start end :范围获取  lrange key 0 -1
                删除:lpop key:删除列表最左边元素,并将元素返回
rpop key:删除列表最右边元素,并将元素返回
            (4)集合类型  set       :hashset  (不允许重复元素)
                存储:sadd key value
                获取:smembers key:获取set计集合中所有元素
                删除:srem key value::删除set集合中的指定元素
            (5)有序集合类型  sortedset(不允许重复,且元素有序)
                存储:zadd key score value:
                获取:zrange key start end
                删除:zrem key value
        7.redis应用场景
            缓存
            任务队列
            应用排行榜
            网站访问统计
        8.cmd启动redis:redis-server.exe redis.windows.conf
    四、Jedis
        1.概念:一款Java操作redis数据库工具
        2.使用
            (1)下载jedis的jar包
            (2)使用
                Jedis jedis = new Jedis("localhost", 6379);//默认为此参数
                jedis.setex("activecode",20,"hello");//将该键值对存入redis,并且在20秒后删除
        3.Jedis操作各种redis中的数据结构
            (1)字符串类型  String
                存储:set key value
                获取:get key
                删除:del key
            (2)哈希表类型  hash:map格式
                存储:hset key field value
                获取:hget key field:获取指定的field对应的值
hgetall key:获取所有的field和value
                删除:hdel key field
            (3)列表类型  list  :linkedlist格式
                可以添加一个元素到列表的头部或尾部  左(lpush)  右(rpush)
存储:lpush key value;   rpush key value
                获取:lrange key start end :范围获取  lrange key 0 -1
                删除:lpop key:删除列表最左边元素,并将元素返回
rpop key:删除列表最右边元素,并将元素返回
            (4)集合类型  set       :hashset  (不允许重复元素)
                存储:sadd key value
                获取:smembers key:获取set计集合中所有元素
                删除:srem key value::删除set集合中的指定元素
            (5)有序集合类型  sortedset(不允许重复,且元素有序)
                存储:zadd key score value:
                获取:zrange key start end
                删除:zrem key value
        4.Jedis连接池:JedisPool
            (1)使用
                创建JedisPool连接池对象
                调用方法getResource()方法获取Jedis连接
            (2)注意事项
                数据库数据一旦改变则需要更新缓存
                数据库的表执行   增删改的相关操作,需要将redis缓存数据情况,再存入
在service对应的增删改方法中,将redis数据删除
    五、Maven
        1.功能
            (1)maven工程对jar包的管理过程
            (2)依赖管理3,4
            (1)一键构建2
        2.maven:命令(默认生命周期)
            (1)mvn compile:编译java主要代码
            (2)mvn test:测试(编译src/main/java代码和测试代码)
            (3)mvn package :打包
            (4)mvn install :安装
            (5)mvn deploy:发布(需要先进行配置)
            (6)mvn clean:清除项目编译信息(清理生命周期)
            站点生命周期不经常使用
        3.项目对象模型(POM).xml
            (1)项目自身信息
            (2)项目运行所需要的jar包信息
            (3)项目运行环境信息,比如jdk,tomcat
        4.依赖管理模型(Dependemcy)仓库
            (1)公司组织名称:<groupld>javax.servlet.jsp</groupld>
            (2)项目名:<artifactld>jsp-api</artifactld>
            (3)版本号:<version>2.0</version>
        5.idea集成maven
            依赖范围
                compile:编译、测试、运行是有效:spring-core
                test:测试时有效:Junit
                provided:编译、测试有效:servlet-api
                runtime:测试、运行时有效:JDBC驱动
                system:对于编译、测试有效:本地的,Maven仓库之外的类库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值