精品欧美一区二区三区在线观看 _久久久久国色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)

99久久精品免费看国产免费软件| 欧美久久综合网| 亚洲综合色视频| 97夜夜澡人人双人人人喊| 波多野结衣亚洲色图| 日本一区精品视频| 午夜私人影院久久久久| 欧美色欧美亚洲另类七区| 亚洲图片中文字幕| 欧美+亚洲+精品+三区| 亚洲精品国产精品乱码不99按摩 | 亚洲精品字幕在线| 国产精品嫩草99av在线| 精品国模在线视频| 日韩精品视频一区二区| 高清电影一区| 亚洲精品免费电影| 欧美一区少妇| 国产v片在线观看| 免费在线成人| 美女福利视频一区| 日韩精品一区二区三区第95| 777久久精品一区二区三区无码| 无码国产精品高潮久久99| 美女网站视频久久| 欧美在线视频一二三| 69夜色精品国产69乱| 日本一道高清一区二区三区| 欧美日韩精品欧美日韩精品一| 欧美一级片免费播放| 97视频精彩视频在线观看| 国产·精品毛片| 国产精品影院在线观看| 久草国产精品视频| 一精品久久久| 中文字幕亚洲激情| 国产精品无码电影| 一区二区三区在线资源| 欧美日韩国产高清一区二区| 国模吧无码一区二区三区| 中文在线观看免费| 国产精品久久久久久久蜜臀| 精品视频在线观看| 午夜精品久久久久久久99老熟妇| 蜜桃免费网站一区二区三区| 日本精品在线视频| 日本一级片免费看| 欧美午夜在线| 欧美精品生活片| 国产wwwwxxxx| 欧美一区二区三区高清视频| 精品五月天久久| 插我舔内射18免费视频| 亚洲国产欧美国产第一区| 欧美老女人在线| 中文字幕第36页| 男人最爱成人网| 污片在线观看一区二区| 久草免费福利在线| 国产高清在线a视频大全 | 免费国产一区二区| 手机在线精品视频| 99久久精品国产毛片| 国产九色91| 秋霞av鲁丝片一区二区| 成人一区二区三区在线观看| 成人在线免费网站| 黄色小视频免费观看| 成人av电影在线网| 含羞草久久爱69一区| 亚洲三级黄色片| 972aa.com艺术欧美| 六月婷婷久久| 激情小视频在线| 国产清纯白嫩初高生在线观看91 | 国产视频在线免费观看| 韩国v欧美v日本v亚洲v| 亚洲最大福利视频网站| 精品毛片一区二区三区| 成人免费视频国产在线观看| 国产欧美亚洲日本| 欧美扣逼视频| 日本一区二区视频在线| 中文字幕剧情在线观看一区| 好了av在线| 一区二区高清免费观看影视大全 | 成人天堂噜噜噜| 国产草草影院ccyycom| 国产成人一级电影| 久草精品电影| 成a人v在线播放| 亚洲欧美综合在线精品| 日韩极品视频在线观看| 亚洲一级少妇| 欧美日韩三级视频| 日本人妻一区二区三区| 一区二区三区日本久久久 | 精品欧美色视频网站在线观看| 亚洲美女免费在线| 男女视频网站在线观看| 91p九色成人| 精品福利在线导航| 69精品无码成人久久久久久| 亚洲午夜精品一区 二区 三区| 欧美精品激情在线观看| 欧美性猛交bbbbb精品| 久草热8精品视频在线观看| 高清av免费一区中文字幕| 久久经典视频| 洋洋成人永久网站入口| 无码人妻丰满熟妇区五十路百度| 精品福利在线| 亚洲国产精品美女| 亚洲区一区二区三| 国产模特精品视频久久久久| 91久久国产婷婷一区二区| 色猫av在线| 有码一区二区三区| 9久久婷婷国产综合精品性色 | 欧美日韩色综合| 亚洲av成人片无码| 图片区亚洲欧美小说区| 欧美一级大片视频| 国产a级免费视频| 亚洲国产精品精华液ab| 丁香六月激情婷婷| 999色成人| 国产亚洲欧美aaaa| 亚洲男人第一av| 国产成人高清在线| 亚洲制服中文| 色豆豆成人网| 亚洲国产精品久久久久秋霞不卡| 极品颜值美女露脸啪啪| 久久精品国产久精国产| 免费一区二区三区在在线视频| 日本一本在线免费福利| 9191精品国产综合久久久久久| 90岁老太婆乱淫| 99在线热播精品免费99热| 91精品国产一区二区三区动漫| 97超碰人人在线| 在线亚洲人成电影网站色www| v天堂中文在线| 国产精品扒开腿做爽爽爽软件| 成人免费在线网址| 91se在线| 欧美色老头old∨ideo| 尤物视频最新网址| 久久av最新网址| 国产日韩欧美亚洲一区| 第一中文字幕在线| 欧美成人官网二区| 久久久久成人网站| 国产成人av电影| 亚洲色图都市激情| 国产精品一区二区美女视频免费看 | 综合激情久久| 欧美精品xxx| 丰满人妻一区二区| 午夜精品久久久久| 青青草视频播放| 男女精品网站| 日韩av大全| av免费在线一区| 最好看的2019年中文视频| 在线观看毛片网站| 亚洲日本韩国一区| 在线观看免费视频国产| 激情偷拍久久| 免费毛片一区二区三区久久久| 久久野战av| 色婷婷综合久久久久| 国产欧美综合视频| 亚洲大型综合色站| 国产亚洲无码精品| 日本不卡在线视频| 国产美女视频免费| 澳门成人av| 日本精品性网站在线观看| 亚洲视频tv| 精品久久久久久亚洲综合网 | 91精品福利视频| 成人三级视频在线观看| 成人中文字幕在线| 日av中文字幕| 久久视频在线| 成人综合av网| 免费看男女www网站入口在线| 亚洲精品一二区| 福利所第一导航| www.在线成人| 日本爱爱免费视频| 91青青国产在线观看精品| 国产裸体写真av一区二区| 污污在线观看| 亚洲精品91美女久久久久久久| 日本中文字幕网| 久久亚洲综合色一区二区三区 | 国产尤物一区二区| 波多野结衣av一区二区全免费观看| 欧美欧美在线| 国产ts一区二区| 日韩大片在线永久免费观看网站| 日韩一区二区三区在线观看| 日韩精品国产一区二区| 中文字幕一区二区三区不卡在线 | 精品少妇人妻av一区二区三区| 亚洲区国产区| 欧美性bbwbbwbbwhd| 电影91久久久| 8x拔播拔播x8国产精品| 91caoporn在线| 精品国产区一区| 国产又粗又猛又爽| 欧美日韩色婷婷| 妖精视频在线观看免费| 国产91精品欧美| 日本xxxx黄色| 亚洲黑丝一区二区| 亚洲欧美99| 国产精品x8x8一区二区| 日本久久久a级免费| 毛片免费不卡| 亚洲男人天堂九九视频| 国产又黄又大又爽| 精品国产户外野外| 黄色一级视频免费| 国产女人水真多18毛片18精品视频 | 福利精品视频在线| 特一级黄色录像| 国产精品色在线| 国产激情第一页| 国产又粗又猛又爽又黄91精品| 97在线播放视频| 激情综合中文娱乐网| 亚洲一区三区在线观看| 蜜乳av综合| 97伦理在线四区| 人人精品久久| 国产不卡精品视男人的天堂| 黄网av在线| 久久久爽爽爽美女图片| 黄页视频在线播放| 国产亚洲欧美aaaa| 三级无遮挡在线观看| 日韩av在线免费观看| 亚洲av无码一区二区乱子伦| 欧美日韩精品高清| 91久久国产视频| 亚洲国产精品一区二区久久恐怖片| 丁香六月激情综合| 欧美经典一区二区三区| 中文字幕一区二区三区乱码不卡| 国产一区二区h| 少妇一级淫免费播放| 天堂在线亚洲视频| 一女被多男玩喷潮视频| 亚洲综合电影一区二区三区| 2019日韩中文字幕mv| 欧美性色综合| 99久久免费观看| 亚洲精品资源| 黄色片网址在线观看| 1024成人| 亚洲中文字幕无码av永久| 99在线精品免费视频九九视| 日韩精品视频在线观看视频| 亚洲手机在线| 国产99久久九九精品无码| 国产亚洲精品自拍| 青青视频在线播放| 久久久久久自在自线| www.超碰97.com| 蜜桃视频一区二区三区在线观看| 欧美两根一起进3p做受视频| 国产日韩视频| 人人干人人视频| 久久国产夜色精品鲁鲁99| 亚洲一级免费在线观看| 国产成人av电影在线| 强迫凌虐淫辱の牝奴在线观看| 97久久超碰国产精品| 国产精品密蕾丝袜| 亚洲同性同志一二三专区| 欧美日韩在线视频免费| 午夜免费久久看| 中文字幕人妻一区二区三区视频 | 91中文字幕在线播放| 91精品国产丝袜白色高跟鞋| 秋霞网一区二区| 亚洲精品一区av在线播放| 成年午夜在线| 久久在线视频在线| 性xxxxfreexxxxx欧美丶| 国产成人欧美在线观看| 91成人app| 久久av一区二区三区亚洲| 久久不卡国产精品一区二区| 亚洲欧美日韩另类精品一区二区三区| 香蕉久久网站| 免费无码国产v片在线观看| 日韩电影在线观看网站| 亚洲天堂av一区二区三区| 成人h动漫精品| 一区二区三区久久久久| 亚洲视频你懂的| 日韩精品在线免费看| 欧美另类videos死尸| 欧日韩在线视频| 永久免费精品影视网站| www久久日com| 日本成人黄色片| 亚州精品国产| 免费成人深夜夜行视频| 欧美日韩18| 欧美精品一区二区三区免费播放| 国内精品伊人久久久久av一坑| 香蕉视频黄色在线观看| 国产精品网站导航| 日本三级片在线观看| 欧美偷拍一区二区| 完全免费av在线播放| 久久免费av| 欧美日韩一道本| 国产一区二区女| 国产精品18在线| 精品免费在线观看| 国产视频第二页| 中文字幕亚洲一区| 极品在线视频| 亚洲最大av在线| 极品美女一区二区三区| 中文精品无码中文字幕无码专区 | 丝袜制服一区二区三区| 91亚洲精品久久久蜜桃| www日韩在线| 欧美在线播放高清精品| 欧美女子与性| 久久免费成人精品视频| 国产电影一区二区| 久久99蜜桃综合影院免费观看| 日韩视频精品在线观看| 日韩精品在线播放视频| 中文字幕av一区二区三区免费看 | 婷婷精品进入| 777视频在线| 久久久精品tv| 五月婷婷亚洲综合| 亚洲精品色婷婷福利天堂| 国产盗摄一区二区| 亚洲精品欧美日韩专区| 婷婷久久国产对白刺激五月99| 妺妺窝人体色www在线观看| 成人99免费视频| 精品91久久久| 亚洲白拍色综合图区| 性欧美videoshd高清| 国产富婆一区二区三区| 欧美国产91| 在线观看欧美一区二区| 亚洲小说欧美激情另类| av观看在线免费| 久久国产精品久久精品| 999国产精品一区| 日韩成人三级视频| 国产成人精品亚洲日本在线桃色| 欧美日韩大片在线观看| 日韩欧美在线一区二区三区| 午夜dj在线观看高清视频完整版| 成人久久久久久久| 国产国产精品| 涩多多在线观看| 亚洲免费观看高清完整版在线观看| 亚洲精品久久久久久久久久久久久久 | 成年人视频软件| 欧美蜜桃一区二区三区| 色综合久久影院| 99国产视频| 亚洲国产午夜| theav精尽人亡av| 欧美午夜一区二区| 麻豆传媒在线完整视频| 91麻豆国产精品| 中文亚洲欧美| 91国模少妇一区二区三区| 欧洲色大大久久| eeuss影院www在线播放| 91久久精品久久国产性色也91| 中文无码久久精品| 狠狠人妻久久久久久综合蜜桃| 欧美午夜片在线免费观看| 邻家有女韩剧在线观看国语| 成人黄色av网站| 精品91在线| 国产jk精品白丝av在线观看| 欧美一区二区日韩| 碰碰在线视频| 三区精品视频观看| 不卡的电视剧免费网站有什么|