精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

「報(bào)表神器!」Spring Boot + JasperReport 實(shí)現(xiàn) PDF、HTML、XML 一鍵生成

開(kāi)發(fā) 前端
本文將完整演示如何在 Spring Boot 項(xiàng)目中整合 JasperReports,從環(huán)境配置、模板設(shè)計(jì)到接口開(kāi)發(fā),逐步實(shí)現(xiàn)用戶(hù)數(shù)據(jù)報(bào)表的導(dǎo)出。

在企業(yè)應(yīng)用中,報(bào)表是業(yè)務(wù)系統(tǒng)的關(guān)鍵組成部分,承擔(dān)著數(shù)據(jù)可視化和統(tǒng)計(jì)分析的重要職責(zé)。傳統(tǒng)方式生成報(bào)表往往費(fèi)時(shí)費(fèi)力,而 JasperReports 作為一款成熟的開(kāi)源報(bào)表引擎,能夠與 Spring Boot 無(wú)縫集成,實(shí)現(xiàn) PDF、HTML、XML 多格式一鍵導(dǎo)出,幫助開(kāi)發(fā)者快速構(gòu)建專(zhuān)業(yè)級(jí)報(bào)表系統(tǒng)。

本文將完整演示如何在 Spring Boot 項(xiàng)目中整合 JasperReports,從環(huán)境配置、模板設(shè)計(jì)到接口開(kāi)發(fā),逐步實(shí)現(xiàn)用戶(hù)數(shù)據(jù)報(bào)表的導(dǎo)出。

 技術(shù)方案概覽

集成 JasperReports 的整體步驟如下:

  1. 引入依賴(lài):在 pom.xml 中添加 jasperreports 相關(guān)依賴(lài)。
  2. 配置字體:解決中文顯示問(wèn)題,保證報(bào)表渲染正常。
  3. 設(shè)計(jì)模板:使用 Jaspersoft Studio 創(chuàng)建 .jrxml 模板。
  4. 加載與編譯:通過(guò) JasperCompileManager 編譯模板。
  5. 填充數(shù)據(jù):將 Java 集合或數(shù)據(jù)庫(kù)數(shù)據(jù)綁定到報(bào)表。
  6. 多格式導(dǎo)出:使用 JasperExportManager 輸出 PDF、HTML、XML。

項(xiàng)目目錄結(jié)構(gòu)

springboot-jasperreport-demo/
├── pom.xml
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── icoderoad/
│   │   │           ├── SpringbootJasperreportApplication.java
│   │   │           ├── controller/
│   │   │           │   └── ReportController.java
│   │   │           ├── entity/
│   │   │           │   └── User.java
│   │   │           └── report/
│   │   │               └── ReportGenerator.java
│   │   └── resources/
│   │       ├── application.yml
│   │       ├── templates/
│   │       │   └── user.jrxml
│   │       ├── fonts/
│   │       │   ├── simhei.ttf
│   │       │   └── fonts.xml
│   │       └── jasperreports.properties
│   └── test/
│       └── java/
│           └── com/
│               └── icoderoad/
│                   └── SpringbootJasperreportApplicationTests.java

引入依賴(lài)

在 pom.xml 中添加 JasperReports 相關(guān)依賴(lài):

<dependencies>
    <!-- JasperReports 核心依賴(lài) -->
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>7.0.3</version>
    </dependency>


    <!-- JasperReports PDF 支持 -->
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-pdf</artifactId>
        <version>7.0.3</version>
    </dependency>


    <!-- Spring Boot Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <!-- Lombok 簡(jiǎn)化實(shí)體類(lèi)代碼 -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

核心代碼實(shí)現(xiàn)

 啟動(dòng)類(lèi)

package com.icoderoad;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class SpringbootJasperreportApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootJasperreportApplication.class, args);
    }
}

User 實(shí)體類(lèi)

package com.icoderoad.entity;


public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
    private String address;


    public User(Long id, String name, Integer age, String email, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.email = email;
        this.address = address;
    }


    public User() {}


    // Getter 和 Setter
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }


    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }


    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }


    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

報(bào)表生成工具類(lèi)

package com.icoderoad.report;


import com.icoderoad.entity.User;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.springframework.core.io.ClassPathResource;


import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;


public class ReportGenerator {


    public static byte[] generate(List<User> users, String format) throws Exception {
        // 1. 加載并編譯報(bào)表模板
        ClassPathResource resource = new ClassPathResource("templates/user.jrxml");
        JasperReport jasperReport = JasperCompileManager.compileReport(resource.getInputStream());


        // 2. 準(zhǔn)備數(shù)據(jù)源和參數(shù)
        JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(users);
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("title", "用戶(hù)列表");


        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource);


        // 3. 導(dǎo)出不同格式
        return switch (format) {
            case "pdf" -> JasperExportManager.exportReportToPdf(jasperPrint);
            case "xml" -> JasperExportManager.exportReportToXml(jasperPrint).getBytes();
            case "html" -> {
                String path = "/tmp/user.html";
                JasperExportManager.exportReportToHtmlFile(jasperPrint, path);
                yield Files.readAllBytes(Paths.get(path));
            }
            default -> throw new IllegalArgumentException("不支持的格式: " + format);
        };
    }
}

控制層

package com.icoderoad.controller;


import com.icoderoad.entity.User;
import com.icoderoad.report.ReportGenerator;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.*;


import java.util.*;


@RestController
@RequestMapping("/users")
public class ReportController {


    @GetMapping("/export/{format}")
    public ResponseEntity<Resource> export(@PathVariable String format) throws Exception {
        // 模擬數(shù)據(jù)
        List<User> users = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            users.add(new User((long) i, "姓名-" + i, new Random().nextInt(100),
                    i + "@qq.com", "地址-" + i));
        }


        // 生成報(bào)表
        byte[] content = ReportGenerator.generate(users, format);
        ByteArrayResource resource = new ByteArrayResource(content);


        return ResponseEntity.ok()
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .header(HttpHeaders.CONTENT_DISPOSITION,
                        ContentDisposition.attachment()
                                .filename("user-report." + format)
                                .build().toString())
                .contentLength(resource.contentLength())
                .body(resource);
    }
}

配置文件

server:
  port: 8080
spring:
  application:
    name: springboot-jasperreport-demo

jasperreports.properties

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.simhei=fonts/fonts.xml

首先,在 Linux 系統(tǒng)中,將 Windows 的 黑體字體文件 simhei.ttf 拷貝到項(xiàng)目目錄:

src/main/resources/fonts/simhei.ttf
fonts/fonts.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
  <fontFamily name="黑體">
    <normal>fonts/simhei.ttf</normal>
    <bold>fonts/simhei.ttf</bold>
    <italic>fonts/simhei.ttf</italic>
    <boldItalic>fonts/simhei.ttf</boldItalic>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
    <exportFonts>
      <export key="net.sf.jasperreports.html">'黑體', Arial, Helvetica, sans-serif</export>
      <export key="net.sf.jasperreports.xhtml">'黑體', Arial, Helvetica, sans-serif</export>
    </exportFonts>
  </fontFamily>
</fontFamilies>

 user.jrxml 示例模板

<?xml version="1.0" encoding="UTF-8"?>
<!-- 用戶(hù)列表報(bào)表模板 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports
                                  http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
              name="user_report"
              pageWidth="595" pageHeight="842"
              columnWidth="555" leftMargin="20" rightMargin="20"
              topMargin="20" bottomMargin="20" uuid="123e4567-e89b-12d3-a456-426614174000">


    <!-- 報(bào)表參數(shù) -->
    <parameter name="title" class="java.lang.String"/>


    <!-- 字段定義 -->
    <field name="id" class="java.lang.Long"/>
    <field name="name" class="java.lang.String"/>
    <field name="age" class="java.lang.Integer"/>
    <field name="email" class="java.lang.String"/>
    <field name="address" class="java.lang.String"/>


    <!-- 報(bào)表標(biāo)題 -->
    <title>
        <band height="50">
            <staticText>
                <reportElement x="0" y="10" width="555" height="30"/>
                <textElement textAlignment="Center">
                    <font fontName="黑體" size="16" isBold="true"/>
                </textElement>
                <text><![CDATA[$P{title}]]></text>
            </staticText>
        </band>
    </title>


    <!-- 表頭 -->
    <columnHeader>
        <band height="20">
            <staticText><reportElement x="0" y="0" width="50" height="20"/><text><![CDATA[ID]]></text></staticText>
            <staticText><reportElement x="50" y="0" width="100" height="20"/><text><![CDATA[姓名]]></text></staticText>
            <staticText><reportElement x="150" y="0" width="50" height="20"/><text><![CDATA[年齡]]></text></staticText>
            <staticText><reportElement x="200" y="0" width="150" height="20"/><text><![CDATA[郵箱]]></text></staticText>
            <staticText><reportElement x="350" y="0" width="205" height="20"/><text><![CDATA[地址]]></text></staticText>
        </band>
    </columnHeader>


    <!-- 數(shù)據(jù)體 -->
    <detail>
        <band height="20">
            <textField><reportElement x="0" y="0" width="50" height="20"/><textFieldExpression><![CDATA[$F{id}]]></textFieldExpression></textField>
            <textField><reportElement x="50" y="0" width="100" height="20"/><textFieldExpression><![CDATA[$F{name}]]></textFieldExpression></textField>
            <textField><reportElement x="150" y="0" width="50" height="20"/><textFieldExpression><![CDATA[$F{age}]]></textFieldExpression></textField>
            <textField><reportElement x="200" y="0" width="150" height="20"/><textFieldExpression><![CDATA[$F{email}]]></textFieldExpression></textField>
            <textField><reportElement x="350" y="0" width="205" height="20"/><textFieldExpression><![CDATA[$F{address}]]></textFieldExpression></textField>
        </band>
    </detail>
</jasperReport>

測(cè)試接口

啟動(dòng)服務(wù)后,分別訪(fǎng)問(wèn)以下地址即可獲取不同格式的報(bào)表:

結(jié)論

通過(guò)本文的實(shí)踐,我們基于 Spring Boot + JasperReports 搭建了一套完整的報(bào)表生成解決方案,實(shí)現(xiàn)了 PDF、HTML、XML 的多格式一鍵導(dǎo)出。整個(gè)過(guò)程涵蓋了 依賴(lài)引入、字體配置、模板設(shè)計(jì)、數(shù)據(jù)填充、接口實(shí)現(xiàn) 等關(guān)鍵環(huán)節(jié)。

這一方案具有以下優(yōu)勢(shì):

  • 可擴(kuò)展性強(qiáng):支持 JDBC、JPA、內(nèi)存數(shù)據(jù)等多種數(shù)據(jù)源。
  • 模板靈活:通過(guò) Jaspersoft Studio 可視化設(shè)計(jì),報(bào)表樣式可自由調(diào)整。
  • 多格式支持:一次開(kāi)發(fā),多端復(fù)用,滿(mǎn)足不同業(yè)務(wù)場(chǎng)景。

在未來(lái),開(kāi)發(fā)者可以基于此方案擴(kuò)展到更加復(fù)雜的業(yè)務(wù),例如 財(cái)務(wù)結(jié)算報(bào)表、統(tǒng)計(jì)分析報(bào)表、業(yè)務(wù)大屏導(dǎo)出 等,從而幫助企業(yè)快速實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的決策支持。

責(zé)任編輯:武曉燕 來(lái)源: 路條編程
相關(guān)推薦

2019-10-11 11:00:53

Nginx神器前端

2021-04-23 10:38:52

Spring BootSpringMVC源碼

2020-05-11 09:40:47

IDEA代碼神器

2020-03-31 15:03:56

Spring Boot代碼Java

2025-07-07 07:33:31

2024-07-15 15:05:20

Python數(shù)據(jù)驅(qū)動(dòng)

2021-10-14 08:40:58

前端技術(shù)數(shù)據(jù)可視化

2025-11-04 07:58:20

SpringBoot多語(yǔ)言18n

2022-12-30 12:20:52

模型AI

2025-02-17 07:48:45

2025-10-31 07:42:31

SpringExcel工具

2024-03-15 14:34:12

Oracle數(shù)據(jù)庫(kù)一鍵巡檢

2022-08-02 14:27:01

HDF驅(qū)動(dòng)框架驅(qū)動(dòng)開(kāi)發(fā)

2015-02-09 15:25:52

換膚

2024-12-13 15:09:41

K8S開(kāi)發(fā)

2022-10-26 12:43:52

SpringBootPDF

2020-11-24 11:00:24

前端

2012-03-01 14:00:08

2022-12-31 18:22:23

2025-03-28 07:56:39

Spring服務(wù)配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲熟妇无码久久精品| 青青草视频成人| free性欧美hd另类精品| 国产一区二区三区四区在线观看| 中文字幕欧美国内| 在线视频一二区| 激情黄产视频在线免费观看| 日本一区二区三区国色天香| 亚洲综合中文字幕68页| 午夜精品久久久久久久久久久久久蜜桃 | 亚洲国产精华液网站w| 国产主播在线一区| 国产一级特黄aaa大片| 成人三级视频| 日韩精品在线看片z| www.av91| www.久久热.com| 国产大片一区二区| 国产精品成人av性教育| 三级影片在线看| 在线亚洲a色| 欧美一级理论片| 北条麻妃在线视频观看| 看女生喷水的网站在线观看| 91丨九色porny丨蝌蚪| 91久久精品国产91久久性色| 不卡av电影在线| 亚洲黄色高清| 乱亲女秽乱长久久久| 亚洲精品国产91| 国产成人一二片| 欧美人动与zoxxxx乱| 国产精品igao激情视频| 日韩免费网站| 国产三级欧美三级日产三级99| 国产精品二区在线| 国产又大又粗又硬| 美腿丝袜在线亚洲一区| 2019中文字幕在线观看| 精品一区二区三区人妻| 女人天堂亚洲aⅴ在线观看| 亚洲第一中文字幕在线观看| 日本黄色一级网站| 久久亚洲资源中文字| 色综合视频一区二区三区高清| 青青青在线观看视频| 日本中文字幕在线2020| 国产人妖乱国产精品人妖| 免费成人av网站| 老司机午夜福利视频| 国产成人综合在线| 亚洲影院污污.| 国产免费不卡视频| 国产在线播精品第三| 成人黄色激情网| 一区不卡在线观看| 久久精品国产精品青草| 国产精品狠色婷| 香蕉污视频在线观看| 久久精品动漫| 人九九综合九九宗合| 久久久久久不卡| 国产中文字幕在线视频| 91亚洲成人| 中文字幕不卡在线视频极品| 久久婷婷五月综合| 成人在线免费小视频| 一区二区三区在线播放欧美| wwwww黄色| 日韩成人精品一区| 色琪琪综合男人的天堂aⅴ视频| 中文字幕av久久爽一区| 青青一区二区三区| 日韩三级成人av网| 免费中文字幕在线| 欧美激情视频一区二区三区在线播放 | 久久中文字幕视频| 欧美精品一区二区蜜桃| 精久久久久久| 2021久久精品国产99国产精品| 久久久久久久久影院| 爽好多水快深点欧美视频| 国产精品久久网| 一本一道精品欧美中文字幕| 国产麻豆欧美日韩一区| 国产精品伊人日日| 日本私人网站在线观看| 中文字幕在线视频一区| www.国产在线视频| 性欧美videohd高精| 欧美妇女性影城| 国产伦精品一区二区三区精品| 亚洲欧洲免费| 久久精品精品电影网| 国产香蕉在线视频| 免费观看久久久4p| 风间由美一区二区三区| 国产永久av在线| 亚洲三级电影网站| 337p粉嫩大胆噜噜噜鲁| 欧美成人黄色| 精品国产1区2区3区| 欧美大波大乳巨大乳| 欧美+日本+国产+在线a∨观看| 97在线精品国自产拍中文| 中文字幕永久在线视频| 成人动漫在线一区| 亚洲精品一区二区三区av| 秋霞在线视频| 欧美视频在线一区二区三区| 亚洲少妇一区二区三区| 欧洲杯足球赛直播| 久久久久久中文字幕| 中文亚洲av片在线观看| 不卡电影一区二区三区| 一区二区三区视频在线播放| 国产乱码精品一区二三赶尸艳谈| 欧美日韩国产免费一区二区| 最近中文字幕无免费| 亚洲国产老妈| 国产精品久久久久久av福利| 国产91麻豆视频| 国产精品美女一区二区三区| 欧美三级一级片| 亚洲视频精选| 日韩视频永久免费观看| 日本黄色一级视频| 99久久久精品| 国内自拍中文字幕| 精品三级在线| 精品伊人久久97| 久久久国产精华液| 国产一区二区三区免费看| 视频一区二区综合| jk漫画禁漫成人入口| 欧美va亚洲va| 亚洲国产美女视频| 久久精品国产一区二区三| 欧美日韩一区二区视频在线| 999福利在线视频| 欧美成人video| 在线看的片片片免费| 免费在线看一区| 欧美色欧美亚洲另类七区| 桃色av一区二区| 日韩成人在线播放| 中国一级免费毛片| 91丨九色丨黑人外教| 3d动漫一区二区三区| 国产ts一区| 9.1国产丝袜在线观看| 日韩一级免费毛片| 精品av在线播放| 中文字幕在线播放视频| 日韩亚洲在线| 精品日韩美女| 亚洲黄色免费看| 亚洲美女在线视频| av毛片在线免费观看| 国产亚洲视频系列| 色婷婷狠狠18| 久久视频国产| 亚洲va国产va天堂va久久| 国产在线1区| 日韩欧美亚洲国产另类| 久久久久黄色片| 成人av中文字幕| 黄网站欧美内射| 蜜桃精品wwwmitaows| 国产精品扒开腿做爽爽爽男男| 成人在线免费电影| 欧美精品一卡二卡| 久久久久久久久精| 99热精品一区二区| 国产日韩一区二区在线观看| 精品一区二区三区中文字幕老牛| 国产精品久久久久免费a∨大胸| 一本一道波多野毛片中文在线 | 国产精品成人自拍| 欧洲亚洲在线视频| 日本电影全部在线观看网站视频| 5566中文字幕一区二区电影| 日本一级片免费| 丁香六月综合激情| 日韩欧美xxxx| 忘忧草精品久久久久久久高清| 成人自拍网站| 婷婷午夜社区一区| 欧美精品性视频| 亚洲欧美一区二区三| 欧美日韩一级大片网址| 久久久久免费看| 国产欧美一区二区精品婷婷| 手机精品视频在线| 国产亚洲在线| 在线观看免费黄色片| 盗摄系列偷拍视频精品tp| 国产成人精品日本亚洲| 超碰在线观看免费| 精品亚洲国产视频| a级片免费视频| 狠狠做深爱婷婷久久综合一区| 久久视频一区二区三区| 东方aⅴ免费观看久久av| 欧美黄色一级片视频| 中文字幕亚洲精品乱码| 欧美成人在线免费观看| 欧美a级大片在线| 国产91热爆ts人妖在线| 在线播放免费av| 伊人亚洲福利一区二区三区| 男人天堂综合网| 欧美欧美欧美欧美首页| av图片在线观看| 一区二区三区中文在线| 亚洲图片第一页| 成+人+亚洲+综合天堂| 污污视频网站在线| 久热精品在线| 久久亚洲中文字幕无码| 亚洲乱码免费伦视频| 日韩精品久久久| 久久精品66| 91亚洲精品一区二区| 久久er热在这里只有精品66| 清纯唯美亚洲激情| 99久久精品免费看国产小宝寻花 | 精精国产xxxx视频在线中文版| 伊人久久大香线蕉av一区二区| 色窝窝无码一区二区三区成人网站| 欧美日韩国产免费一区二区| 中文字幕日韩免费| 精品人伦一区二区三区蜜桃免费| 免费日韩在线视频| 中文字幕中文字幕在线一区 | 一级成人免费视频| 在线精品视频免费观看| 在线观看亚洲天堂| 姬川优奈aav一区二区| 中文在线观看免费网站| 亚洲一区二区中文在线| 欧美成人手机视频| 亚洲精品五月天| 日韩成人毛片视频| 亚洲图片激情小说| 老熟妇高潮一区二区三区| 国产精品免费人成网站| 污污视频网站在线免费观看| 国产欧美一区二区在线| 超薄肉色丝袜一二三| 国产欧美日韩视频在线观看| 亚洲黄色小说视频| 国产日韩欧美在线一区| av网站免费在线看| 中文无字幕一区二区三区| 九一在线免费观看| 亚洲视频小说图片| 欧美成人精品欧美一| 亚洲午夜精品在线| 中文字幕第15页| 一本一本久久a久久精品综合麻豆| 亚洲综合一二三| 欧美小视频在线| 国产情侣免费视频| 欧美网站大全在线观看| 91麻豆成人精品国产免费网站| 欧美精选午夜久久久乱码6080| 国产麻豆免费视频| 精品欧美一区二区在线观看| 天天干免费视频| 精品一区二区三区四区在线| av片在线看| 久热爱精品视频线路一| 国产探花在线观看| 欧美中文字幕视频在线观看| 日韩免费小视频| 成人中文字幕在线观看| 日韩一区二区三区在线看| 国内精品久久久久久久果冻传媒| 日韩在线你懂的| 一区二区不卡视频| 欧美三级黄美女| 欧美日韩一区二区在线免费观看| 日韩—二三区免费观看av| 国产无遮挡猛进猛出免费软件 | 18深夜在线观看免费视频| 成人免费福利片| 蜜桃传媒一区二区亚洲| 最好看的中文字幕久久| 久久精品视频6| 色婷婷香蕉在线一区二区| 国产又黄又粗又硬| 亚洲精品按摩视频| 在线观看免费版| 久久久免费精品视频| 欧美va在线观看| 99影视tv| 自拍视频一区| 超级碰在线观看| 香蕉精品999视频一区二区| 午夜啪啪小视频| 91麻豆蜜桃一区二区三区| 欧洲美女女同性互添| 欧美日韩裸体免费视频| 国产精品玖玖玖| 亚洲人成在线免费观看| 在线不卡日本v二区707| 国产精自产拍久久久久久蜜| 精品久久ai电影| 欧美一级黄色录像片| 久久三级福利| 污网站免费观看| 1区2区3区欧美| av片免费观看| 亚洲激情在线观看| 三级福利片在线观看| 国产精品美女无圣光视频| 欧美日韩导航| 日本aa在线观看| 美女尤物国产一区| 免费看污片网站| 亚洲国产视频网站| 999精品国产| 中文字幕无线精品亚洲乱码一区| mm视频在线视频| 粉嫩高清一区二区三区精品视频| 国产韩日影视精品| 久久久久久久片| 久久久久久免费| 日本网站在线播放| 精品国精品自拍自在线| dy888亚洲精品一区二区三区| 国产日韩专区在线| 精品美女久久久| 97公开免费视频| av影院午夜一区| 国产精选第一页| 亚洲国产精彩中文乱码av| 呦呦在线视频| 97人人模人人爽人人少妇| 希岛爱理av一区二区三区| 国产精品视频中文字幕| 国产免费成人在线视频| 蜜臀99久久精品久久久久小说| 日韩av影片在线观看| 国产传媒在线| 国产乱码精品一区二区三区日韩精品| 欧美日韩国产探花| 自拍视频第一页| 亚洲图片欧美视频| 国精产品乱码一区一区三区四区| 色综合久久精品亚洲国产| 日韩在线亚洲| 日韩日韩日韩日韩日韩| 成人免费毛片高清视频| 日韩 欧美 综合| 亚洲国产另类久久精品| 中文不卡1区2区3区| 久久人人九九| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品电影网在线观看| 日韩欧美精品一区二区三区| 欧美1o一11sex性hdhd| 日韩极品在线观看| 成人18视频免费69| 日韩欧美成人一区二区| 国模私拍视频在线播放| 玖玖玖精品中文字幕| 久久精品人人| 蜜桃视频最新网址| 日韩欧美色电影| 亚洲黄色a v| 国产亚洲欧洲一区高清在线观看| 亚洲乱码国产乱码精品| 中文字幕一区电影| 99精品国产九九国产精品| 可以在线看黄的网站| gogo大胆日本视频一区| 亚洲 日本 欧美 中文幕| 中文字幕少妇一区二区三区| 日韩一区二区三区高清在线观看| 免费看黄在线看| 国产欧美日韩精品在线| 国产又粗又大又黄| 久久久久久网址| 欧美一二区在线观看| 善良的小姨在线| 精品久久久久久久大神国产| 最新国产在线观看| 成人免费在线看片| 久久中文在线| 国产探花在线免费观看| 日韩精品在线看| 国产日韩欧美中文在线| 国产免费毛卡片| 最新欧美精品一区二区三区| 熟妇高潮一区二区三区| 国产日韩一区在线| 亚洲免费中文| 欧美激情精品久久|