亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用JSON進行數據交換實例

2019-11-15 00:35:35
字體:
來源:轉載
供稿:網友
使用JSON進行數據交換實例

1 訪問javaScript對象的屬性

1.1 問題

訪問Javascript對象的屬性

1.2 方案

使用初始化的方式創建JavaScript對象,并訪問對象的屬性.

1.3 步驟

步驟一: 新建json01.html文件

添加鏈接的單擊動作,調用方法。

步驟二: 運行查看結果

步驟三: 添加復雜對象

步驟四: 運行查看結果

1.4 完整代碼

json01.html文件代碼如下:

<html>    <head>        <title>json01.html</title>        <meta http-equiv="content-type" content="text/html; charset=UTF-8">        <script type="text/javascript">            function f1(){                var obj = {'name':'Luffy','age':17};                alert(obj.name + "  " + obj.age);            }            function f2(){                var obj = {'name':'Luffy',                        'address':{                                    'city':'Beijing',                                    'street':'dzs',                                    'room':17                                                      }};                alert(obj.name + "  " + obj.address+"     "+obj.address.city );            }        </script>    </head>    <body>        <!—- 創建JavaScript對象并查看屬性 -->        <a href="javascript:;" onclick="f1();">查看對象屬性1</a>        </br>        <a href="javascript:;" onclick="f2();">查看對象屬性2</a>    </body></html>

2 訪問Javacript對象數組

2.1 問題

訪問JavaScript對象數組中的元素

2.2 方案

遵循數組的格式要求,使用方括號開頭和結尾。

2.3 步驟

步驟一: 新建json02.html文件,在文件中添加鏈接進行方法調用的測試。添加第一個方法f3()。

步驟二: 運行查看結果

步驟三: 添加下一個方法f4()

步驟四: 運行查看結果

2.4 完整代碼

json02.html文件代碼如下:

<html>    <head>        <title>json02.html</title>        <meta http-equiv="content-type" content="text/html; charset=UTF-8">        <script type="text/javascript">            function f3(){                var arr = [ {'name':'Luffy','age':17},                             {'name':'Zoro','age':19}];                 alert(arr[1].name);            }            function f4(){                var obj = {'name':'Luffy',                        'friends':[{'name':'Zoro','age':19},                                   {'name':'Nami','age':18}]                           };                alert(obj.name + "  " + obj.friends[1].name);            }        </script>    </head>    <body>        <!— 訪問JavaScript對象數組 -->        <a href="javascript:;" onclick="f3();">查看數組中的對象屬性1</a>        </br>        <a href="javascript:;" onclick="f4();">查看數組中的對象屬性2</a>    </body></html>

3 JSON字符串轉換成JavaScript對象

3.1 問題

將符合JSON格式要求的字符串,轉換為JavaScript對象。

3.2 方案

借助于原生的eval方法或者原生對象JSON.parse(str)方法。

3.3 步驟

步驟一: 新建json03.html文件

在文件中添加腳本代碼,f5()方法為字符串到對象的轉變過程。

JSON這個原生對象提供了字符串和對象之間轉換的方法,如果瀏覽器無法得到想要的輸出結果,是因為版本太低不支持這個原生對象。

步驟二:運行查看結果

步驟三: 添加方法f6(),實現數組的轉換

步驟四:運行查看結果

步驟五:添加f7()方法,實現對象到字符串的轉換

步驟六: 運行查看結果

3.4 完整代碼

    <html>      <head>        <title>json03.html</title>               <meta http-equiv="content-type" content="text/html; charset=UTF-8">               <script type="text/javascript" src="js/json.js"></script>            <script type="text/javascript">                    /*JSON字符串轉JSON對象*/            function f5(){                var str = '{"name":"Luffy","age":17}';                                            //第1種方式(不需要任何js文件)                //var obj = eval("("+str+")");                                第2種方式(不需要json.js文件)                //var obj = JSON.parse(str);                                //第3種方式(需要json.js文件)                //var obj = str.parseJSON();                                            alert(obj.name);            }                        /*JSON字符串轉JSON數組*/            function f6(){                var str = '[{"name":"Luffy","age":17},' +                           '{"name":"Zoro","age":19}]';                                       //第1種方式(不需要json.js文件)                var arr = eval("("+str+")");                                //第2種方式(需要json.js文件)                //var arr = str.parseJSON();                                alert(arr[1].name);            }                        /*JSON對象轉JSON字符串*/            function f7(){                var obj = {"name":"Luffy","age":17};                                //第1種方式(需要json.js文件)                //var str = obj.toJSONString();                               //第2種方式(不需要json.js文件)                var str = JSON.stringify(obj);                alert(str);            }        </script>      </head>        <body>          <!-- 使用JSON表示數組 -->        <a href="javascript:;" onclick="f5();">JSON字符串-->JSON對象</a><br/><br/><br/>        <a href="javascript:;" onclick="f6();">JSON字符串-->JSON數組</a><br/><br/><br/>        <a href="javascript:;" onclick="f7();">JSON對象-->JSON字符串</a><br/><br/><br/>      </body>    </html>

4 Java對象轉換成JSON字符串

4.1 問題

將Java對象轉換成符合JSON格式的字符串,并測試。

4.2 方案

使用與json-lib.jar相關的jar文件完成類型的轉換。

4.3 步驟

步驟一: 新建實體類 Friend

package com.souvc.json;public class Friend {    PRivate String name;    private int age;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String toString() {        return this.name + "   " + this.age;    }}

步驟二: 新建JSONTest類

在該類中添加四個方法,分別用于測試Java對象轉換為JSON字符串,Java數組轉換為JSON字符串,JSON字符串轉換為Java對象,JSON字符串轉換為Java數組。

步驟三: 引入jar文件

在添加jar文件的時候,需要導入6個jar文件,缺一不可。

網盤jar包下載地址:http://yunpan.cn/cQyHfiAYWHmhg 訪問密碼 ab8f

或是到官方下載最新的json-lib工具包     下載地址:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/json-lib還需要以下依賴包:     jakarta commons-lang 2.5          jakarta commons-beanutils 1.8.0          jakarta commons-collections 3.2.1          jakarta commons-logging 1.1.1          ezmorph 1.0.6

步驟四: 添加具體的轉換方法:Java對象轉換為JSON字符串

/**     * Java對象轉換為JSON字符串     */    public static void test1() {        Friend f = new Friend();        f.setName("Zoro");        f.setAge(19);        JSONObject jsonObj = JSONObject.fromObject(f);        String jsonStr = jsonObj.toString();        System.out.println(jsonStr);    }

步驟五:運行結果

{"age":19,"name":"Zoro"}

步驟六: Java數組(集合)轉換為JSON字符串

/**     * JSON字符串轉換為Java數組     */    public static void test4() {        String jsonStr = "[{/"name/":/"Luffy/",/"age/":17},"                + "        {/"name/":/"Zoro/",/"age/":19}]";        JSONArray jsonArr = JSONArray.fromObject(jsonStr);        List<Friend> friends = (List<Friend>) JSONArray.toCollection(jsonArr,                Friend.class);        for (Friend f : friends) {            System.out.println(f);        }    }

運行結果:

[{"age":19,"name":"Zoro1"},{"age":20,"name":"Zoro2"},{"age":21,"name":"Zoro3"}]

步驟七:JSON字符串轉換為Java對象

/**     * JSON字符串轉換為Java對象     */    public static void test3() {        String jsonStr = "{/"name/":/"Luffy/",/"age/":17}";        JSONObject jsonObj = JSONObject.fromObject(jsonStr);        Friend friend = (Friend) JSONObject.toBean(jsonObj, Friend.class);        System.out.println(friend);    }

運行結果:

Luffy   17

步驟八: JSON字符串轉換為Java數組(集合)

/**     * JSON字符串轉換為Java數組     */    public static void test4() {        String jsonStr = "[{/"name/":/"Luffy/",/"age/":17},"                + "        {/"name/":/"Zoro/",/"age/":19}]";        JSONArray jsonArr = JSONArray.fromObject(jsonStr);        List<Friend> friends = (List<Friend>) JSONArray.toCollection(jsonArr,                Friend.class);        for (Friend f : friends) {            System.out.println(f);        }    }

運行結果:

Luffy   17Zoro   19

4.4 完整代碼

Friend.java文件代碼如下:

package com.souvc.json;public class Friend {    private String name;    private int age;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String toString() {        return this.name + "   " + this.age;    }}

JSONTest 代碼:

package com.souvc.json;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class JSONTest {    /**     * Java對象轉換為JSON字符串     */    public static void test1() {        Friend f = new Friend();        f.setName("Zoro");        f.setAge(19);        JSONObject jsonObj = JSONObject.fromObject(f);        String jsonStr = jsonObj.toString();        System.out.println(jsonStr);    }    /**     * Java數組轉換為JSON字符串     */    public static void test2() {        List<Friend> fs = new ArrayList<Friend>();        for (int i = 0; i < 3; i++) {            Friend f = new Friend();            f.setName("Zoro" + (i + 1));            f.setAge(19 + i);            fs.add(f);        }        JSONArray jsonArr = JSONArray.fromObject(fs);        String jsonStr = jsonArr.toString();        System.out.println(jsonStr);    }    /**     * JSON字符串轉換為Java對象     */    public static void test3() {        String jsonStr = "{/"name/":/"Luffy/",/"age/":17}";        JSONObject jsonObj = JSONObject.fromObject(jsonStr);        Friend friend = (Friend) JSONObject.toBean(jsonObj, Friend.class);        System.out.println(friend);    }    /**     * JSON字符串轉換為Java數組     */    public static void test4() {        String jsonStr = "[{/"name/":/"Luffy/",/"age/":17},"                + "        {/"name/":/"Zoro/",/"age/":19}]";        JSONArray jsonArr = JSONArray.fromObject(jsonStr);        List<Friend> friends = (List<Friend>) JSONArray.toCollection(jsonArr,                Friend.class);        for (Friend f : friends) {            System.out.println(f);        }    }    public static void main(String[] args) {        test1();        test2();        test3();        test4();    }}

5 使用JSON完成級聯下拉列表

5.1 問題

結合異步請求,實現城市的級聯下拉列表。

5.2 方案

分別編寫客戶端腳本和服務器端處理程序。服務器端要實現將Java對象轉換為傳輸的JSON字符串??蛻舳嗽谑盏竭@個字符串以后進行轉換,變成JavaScript對象,使用對象的各個屬性構造下拉框的Option選項后添加到select下面。

5.3 步驟

步驟一: 新建實體類City

package com.souvc.json;public class City {    private String cityName;    private String cityValue;    public City() {        super();    }    public City(String cityName, String cityValue) {        super();        this.cityName = cityName;        this.cityValue = cityValue;    }    public String getCityName() {        return cityName;    }    public void setCityName(String cityName) {        this.cityName = cityName;    }    public String getCityValue() {        return cityValue;    }    public void setCityValue(String cityValue) {        this.cityValue = cityValue;    }}

步驟二: 新建ActionServlet

package com.souvc.json;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;public class ActionServlet extends HttpServlet {    public void service(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {                request.setCharacterEncoding("UTF-8");        response.setContentType("text/html;charset=UTF-8");                PrintWriter out = response.getWriter();                //獲得請求路徑        String uri = request.getRequestURI();        //截取請求路徑        String action = uri.substring(uri.lastIndexOf("/"), uri                .lastIndexOf("."));                if (action.equals("/city")) {            String name = request.getParameter("name");            if (name.equals("bj")) {                City c1 = new City("海淀", "hd");                City c2 = new City("東城", "dc");                City c3 = new City("西城", "xc");                List<City> cs = new ArrayList<City>();                cs.add(c1);                cs.add(c2);                cs.add(c3);                JSONArray obj = JSONArray.fromObject(cs);                String str = obj.toString();                out.println(str);                            } else if (name.equals("sh")) {                City c1 = new City("徐匯", "xh");                City c2 = new City("靜安", "ja");                City c3 = new City("黃浦", "hp");                List<City> cs = new ArrayList<City>();                cs.add(c1);                cs.add(c2);                cs.add(c3);                JSONArray obj = JSONArray.fromObject(cs);                String str = obj.toString();                out.println(str);            }                    }        out.close();    }}

步驟三: 新建city.html文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <title>city.html</title>        <meta http-equiv="keyWords" content="keyword1,keyword2,keyword3">        <meta http-equiv="description" content="this is my page">        <meta http-equiv="content-type" content="text/html; charset=UTF-8">        <script type="text/javascript" src="js/json2.js"></script>        <script type="text/javascript">        function getxmlHttpRequest(){            var xhr = null;               if((typeof xmlhttpRequest)!='undefined'){                  xhr = new XMLHttpRequest();               }else {                  xhr = new ActiveXObject('Microsoft.XMLHttp');               }               return xhr;        }        function change(v1){            var xhr = getXmlHttpRequest();            xhr.open('post','city.do',true);            xhr.setRequestHeader("Content-Type",                "application/x-www-form-urlencoded");            xhr.onreadystatechange=function(){                if(xhr.readyState == 4){                    var txt = xhr.responseText;                    var citys = txt.parseJSON();                    document.getElementById('s2').innerHTML = '';                    for(i=0;i<citys.length;i++){                        var op =                         new Option(citys[i].cityName,                        citys[i].cityValue);                        document.getElementById('s2').options[i] = op;                    }                }            };            xhr.send('name=' + v1);        }    </script>    </head>    <body>        <select id="s1" style="width: 120px;" onchange="change(this.value);">            <option value="sh">                上海            </option>            <option value="bj">                北京            </option>        </select>        <select id="s2" style="width: 120px;">        </select>    </body></html>

步驟四: 運行查看結果

5.4 完整代碼

如上。

6 熱賣商品動態顯示

6.1 問題

每隔5秒鐘,顯示當前賣的最好的三件商品。

6.2 方案

每5秒鐘發送一次Ajax請求,將返回的JSON數組數據顯示到頁面的div中。

6.3 步驟

步驟一: 新建Sale類

package com.souvc.json;public class Sale {    private int id;    private String prodName;    private int qty;    public Sale() {        super();    }    public Sale(int id, String prodName, int qty) {        super();        this.id = id;        this.prodName = prodName;        this.qty = qty;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getProdName() {        return prodName;    }    public void setProdName(String prodName) {        this.prodName = prodName;    }    public int getQty() {        return qty;    }    public void setQty(int qty) {        this.qty = qty;    }}

步驟二: 新建dao包下面的DBUtil類和SaleDAO類

DBUtil.java文件:

package com.souvc.json;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * JDBC管理連接的工具類,可以獲取連接和關閉連接 */public class DBUtil {    /**     * 獲取連接對象     */    public static Connection getConnection() throws Exception {        Connection conn = null;        try {            Class.forName("com.MySQL.jdbc.Driver");            conn = DriverManager.getConnection(                    "jdbc:mysql://localhost:3306/csdn", "root", "123456");        } catch (Exception e) {            e.printStackTrace();            throw e;        }        return conn;    }    /**     * 關閉連接對象     */    public static void close(Connection conn) throws Exception {        if (conn != null) {            try {                conn.close();            } catch (SQLException e) {                e.printStackTrace();                throw e;            }        }    }}

執行如下sql語句:

新建SaleDAO.java文件,編寫用于查詢銷量前三的方法。

package com.souvc.json;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;public class SaleDAO {    public List<Sale> findAll() throws Exception {        List<Sale> sales = new ArrayList<Sale>();        Connection conn = null;        PreparedStatement stmt = null;        ResultSet rs = null;        try {            conn = DBUtil.getConnection();            stmt = conn.prepareStatement("select * from (select rownum r,"                    + "a.* from (select * from t_sale order by qty desc) a) "                    + "c where c.r < 4");            rs = stmt.executeQuery();            while (rs.next()) {                Sale s = new Sale(rs.getInt("id"), rs.getString("prodname"), rs                        .getInt("qty"));                sales.add(s);            }        } catch (Exception e) {            e.printStackTrace();            throw e;        } finally {            DBUtil.close(conn);        }        return sales;    }}

步驟三: 新建ActionServlet類

package com.souvc.json;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;public class ActionServlet extends HttpServlet {    public void service(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        request.setCharacterEncoding("UTF-8");        response.setContentType("text/html;charset=UTF-8");        PrintWriter out = response.getWriter();        // 獲得請求路徑        String uri = request.getRequestURI();        // 截取請求路徑        String action = uri.substring(uri.lastIndexOf("/"), uri                .lastIndexOf("."));        if (action.equals("/city")) {            String name = request.getParameter("name");            if (name.equals("bj")) {                City c1 = new City("海淀", "hd");                City c2 = new City("東城", "dc");                City c3 = new City("西城", "xc");                List<City> cs = new ArrayList<City>();                cs.add(c1);                cs.add(c2);                cs.add(c3);                JSONArray obj = JSONArray.fromObject(cs);                String str = obj.toString();                out.println(str);            } else if (name.equals("sh")) {                City c1 = new City("徐匯", "xh");                City c2 = new City("靜安", "ja");                City c3 = new City("黃浦", "hp");                List<City> cs = new ArrayList<City>();                cs.add(c1);                cs.add(c2);                cs.add(c3);                JSONArray obj = JSONArray.fromObject(cs);                String str = obj.toString();                out.println(str);            }        } else if (action.equals("/sale")) {            SaleDAO dao = new SaleDAO();            try {                List<Sale> all = dao.findAll();                JSONArray arry = JSONArray.fromObject(all);                out.println(arry.toString());            } catch (Exception e) {                e.printStackTrace();                throw new ServletException(e);            }        }        out.close();    }}

步驟四: 新建sales.html文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <title>sales.html</title>        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">        <meta http-equiv="description" content="this is my page">        <meta http-equiv="content-type" content="text/html; charset=UTF-8">        <style>#d1 {    width: 500px;    height: 180px;    background-color: #fff8dc;    border: 1px solid red;    margin-left: 350px;    margin-top: 50px;}</style>        <script type="text/javascript" src="js/prototype-1.6.0.3.js"></script>        <script type="text/javascript">        function getXmlHttpRequest(){            var xhr = null;            if((typeof XMLHttpRequest)!='undefined'){                  xhr = new XMLHttpRequest();                   }else {                  xhr = new ActiveXObject('Microsoft.XMLHttp');               }               return xhr;        }        function f1(){            setInterval(f2,5000);        }        function f2(){            var xhr = getXmlHttpRequest();            xhr.open('post','sale.do',true);            xhr.setRequestHeader("Content-Type",                "application/x-www-form-urlencoded");            xhr.onreadystatechange=function(){                if(xhr.readyState == 4){                    var txt = xhr.responseText;                    var sales = txt.evalJSON();                    var saleInfo = '當前銷量最好的商品是:<br/>';                    for(i=0;i<sales.length;i++){                        saleInfo += '商品名稱:'                         + sales[i].prodName + ' 銷量:' +                          sales[i].qty + '<br/>';                    }                    $('d1').innerHTML = saleInfo;                }            };            xhr.send(null);        }    </script>    </head>    <body onload="f1();">        <div id="d1"></div>    </body></html>

步驟五:運行查看結果

6.4 完整代碼

源碼: http://yunpan.cn/cQyrTefxWuHfK 訪問密碼 7b77


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲影院色在线观看免费| 亚洲国产精久久久久久久| 亚洲乱码国产乱码精品精天堂| 国内免费久久久久久久久久久| 亚洲国产99精品国自产| www.亚洲免费视频| 欧美成aaa人片免费看| 久久精品国产亚洲| 情事1991在线| 国产一区二区免费| 97在线观看视频国产| 亚洲日本成人女熟在线观看| 成人精品一区二区三区| 欧美韩日一区二区| 精品调教chinesegay| 欧洲成人性视频| 久久久久久久久中文字幕| 色悠久久久久综合先锋影音下载| 欧美精品videos另类日本| 久精品免费视频| 亚洲人成在线免费观看| 亚洲国产成人在线播放| 久久亚洲精品成人| 麻豆国产va免费精品高清在线| 午夜精品三级视频福利| 精品亚洲国产成av人片传媒| 亚洲一区二区三区毛片| 最近的2019中文字幕免费一页| 国产免费一区二区三区在线观看| 亚洲欧美国产视频| 91精品国产自产在线观看永久| 亚洲欧美另类中文字幕| 欧美日韩精品在线观看| 日本精品免费观看| 91高清视频免费观看| 中文字幕久热精品在线视频| 亚洲欧美综合区自拍另类| 日韩视频在线免费| 欧美国产第一页| 日韩最新在线视频| 午夜精品久久久久久久99热浪潮| 国产亚洲视频在线| 亚洲一区免费网站| 一个色综合导航| 国内精品一区二区三区| 日韩欧美亚洲一二三区| 亚洲精品suv精品一区二区| 国产成人亚洲综合91| 秋霞成人午夜鲁丝一区二区三区| 欧美成人午夜激情| 欧美极品少妇全裸体| 久久久欧美精品| xvideos国产精品| 国产中文字幕日韩| 国产精品男人爽免费视频1| 亚洲精品综合久久中文字幕| 6080yy精品一区二区三区| 国产成人av在线| 成人欧美一区二区三区在线| 在线电影欧美日韩一区二区私密| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一区在线直播| 国产精品美女在线| 国产视频精品免费播放| 国产成人久久久精品一区| 国产a级全部精品| 88国产精品欧美一区二区三区| 亚洲无亚洲人成网站77777| 97在线视频免费观看| 精品久久久久久电影| 国产精品夫妻激情| 国产精品99久久久久久久久久久久| zzijzzij亚洲日本成熟少妇| 国产欧美一区二区三区视频| 亚洲一区精品电影| 国产精品久久久久久久久男| 欧美高清视频在线| 欧美大荫蒂xxx| 黄色精品一区二区| 77777亚洲午夜久久多人| 久久久久久中文字幕| 日韩精品福利网站| 久久天天躁狠狠躁夜夜av| 欧美精品一区二区免费| 91tv亚洲精品香蕉国产一区7ujn| 久久躁日日躁aaaaxxxx| 日韩最新在线视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产在线不卡精品| 亚洲一区二区三区777| 久久成人国产精品| 亚洲va久久久噜噜噜久久天堂| 日韩av影视在线| 亚洲色无码播放| 91精品国产亚洲| 亚洲欧美综合另类中字| 久久亚洲成人精品| 亚洲国产精彩中文乱码av| 精品美女国产在线| 久久久久久久久久久免费精品| 91精品国产免费久久久久久| 欧美视频在线观看免费网址| 夜夜嗨av色综合久久久综合网| 精品国产一区二区在线| 亚洲欧美精品一区| 国产精品99久久久久久久久久久久| 91成人免费观看网站| 中文字幕日韩欧美精品在线观看| 97在线视频观看| 国产精品丝袜久久久久久高清| 欧美日韩一区二区在线播放| 国产精品久久一区主播| 国语自产在线不卡| 亚洲精品色婷婷福利天堂| 中文字幕久热精品视频在线| 日韩美女写真福利在线观看| 国产精品电影一区| 亚洲色无码播放| 丁香五六月婷婷久久激情| 久久精品视频网站| 亚洲第一天堂无码专区| 欧美性猛交xxxx免费看漫画| 欧美大肥婆大肥bbbbb| 成人黄色影片在线| 成人欧美在线视频| 亚洲欧美日韩一区二区三区在线| 国产经典一区二区| 国产精品高潮粉嫩av| 亚洲欧洲自拍偷拍| 亚洲91精品在线观看| 欧美精品精品精品精品免费| 久久精品国产视频| 91精品国产电影| 国产精品高清网站| 亚洲精品日韩丝袜精品| 九九久久国产精品| 97高清免费视频| 亚洲激情视频在线观看| 日本久久久久亚洲中字幕| 久久国产精彩视频| 精品日韩中文字幕| 免费91麻豆精品国产自产在线观看| 日韩美女福利视频| 国产成人精品一区二区| 国产成人精品视频在线| 欧美老少做受xxxx高潮| 国产成人精品优优av| 欧美午夜电影在线| 久久久久久有精品国产| 欧美一区二区大胆人体摄影专业网站| 92版电视剧仙鹤神针在线观看| 精品一区二区三区三区| 成人夜晚看av| 日韩美女av在线| 91免费国产网站| 国产v综合ⅴ日韩v欧美大片| 亚洲大胆人体视频| 丝袜一区二区三区| 国产亚洲欧美日韩美女| 国内精品美女av在线播放| 精品欧美aⅴ在线网站| 欧美精品在线播放| 亚洲丝袜在线视频| 国产成人精品久久二区二区|