日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

将HTML转换为Apache POI的RichTextString

發(fā)布時間:2023/12/3 HTML 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将HTML转换为Apache POI的RichTextString 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.概述

在本教程中,我們將構(gòu)建一個將HTML作為輸入的應(yīng)用程序,并使用提供HTML的RichText表示形式創(chuàng)建Microsoft Excel工作簿。 為了生成Microsoft Excel工作簿,我們將使用Apache POI 。 為了分析HTML,我們將使用Jericho。

Github上提供了本教程的完整源代碼。

2.什么是耶利哥?

Jericho是一個Java庫 ,它允許對HTML文檔的各個部分(包括服務(wù)器端標(biāo)簽)進(jìn)行分析和操作,同時逐字再現(xiàn)任何無法識別或無效HTML。 它還提供了高級HTML表單操作功能。 它是一個開放源代碼庫,使用以下許可證發(fā)行: Eclipse公共許可證(EPL) , GNU通用公共許可證(LGPL)和Apache許可證 。

我發(fā)現(xiàn)Jericho非常易于使用,可以實現(xiàn)我將HTML轉(zhuǎn)換為RichText的目標(biāo)。

3. pom.xml

這是我們正在構(gòu)建的應(yīng)用程序所需的依賴項。 請注意,對于此應(yīng)用程序,我們必須使用Java 9 。 這是因為我們使用的java.util.regex appendReplacement方法自Java 9起才可用。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><relativePath /> <!-- lookup parent from repository --> </parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>9</java.version> </properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-batch</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.7</version></dependency><dependency><groupId>org.springframework.batch</groupId><artifactId>spring-batch-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version></dependency><!-- https://mvnrepository.com/artifact/net.htmlparser.jericho/jericho-html --><dependency><groupId>net.htmlparser.jericho</groupId><artifactId>jericho-html</artifactId><version>3.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!-- legacy html allow --><dependency><groupId>net.sourceforge.nekohtml</groupId><artifactId>nekohtml</artifactId></dependency> </dependencies>

4.網(wǎng)頁– Thymeleaf

我們使用Thymeleaf來創(chuàng)建一個基本頁面,該頁面具有帶有文本區(qū)域的表單。 Github上提供了Thymeleaf頁面的源代碼。 如果愿意,可以使用RichText編輯器替換此textarea,例如CKEditor。 我們只需要注意使用適當(dāng)?shù)膕etData方法使AJAX的數(shù)據(jù)正確即可。 在Spring Boot中,以前有一個關(guān)于CKeditor的教程,標(biāo)題為CKEditor,名為AJAX 。

5.控制器

在我們的控制器中,我們將自動裝配JobLauncher和一個Spring Batch作業(yè),我們將創(chuàng)建一個名為GenerateExcel的作業(yè) 。 自動裝配這兩個類使我們可以在POST請求發(fā)送到“ / export”時按需運行Spring Batch Job GenerateExcel 。

要注意的另一件事是,為確保Spring Batch作業(yè)將運行一次以上,我們在此代碼中包含唯一參數(shù): addLong(“ uniqueness”,System.nanoTime())。toJobParameters() 。 如果我們不包括唯一的參數(shù),則可能會發(fā)生錯誤,因為只能創(chuàng)建和執(zhí)行唯一的JobInstances,否則Spring Batch無法區(qū)分第一個JobInstance和第二個JobInstance 。

@Controller public class WebController {private String currentContent;@AutowiredJobLauncher jobLauncher;@AutowiredGenerateExcel exceljob; @GetMapping("/")public ModelAndView getHome() {ModelAndView modelAndView = new ModelAndView("index");return modelAndView;}@PostMapping("/export")public String postTheFile(@RequestBody String body, RedirectAttributes redirectAttributes, Model model)throws IOException, JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException {setCurrentContent(body);Job job = exceljob.ExcelGenerator();jobLauncher.run(job, new JobParametersBuilder().addLong("uniqueness", System.nanoTime()).toJobParameters());return "redirect:/";}//standard getters and setters}

6.批處理作業(yè)

在批處理作業(yè)的步驟1中,我們調(diào)用getCurrentContent()方法來獲取傳遞到Thymeleaf表單中的內(nèi)容,創(chuàng)建一個新的XSSFWorkbook,指定一個任意的Microsoft Excel Sheet選項卡名稱,然后將所有三個變量都傳遞到createWorksheet方法中我們將在本教程的下一步中進(jìn)行以下操作:

@Configuration @EnableBatchProcessing @Lazy public class GenerateExcel {List<String> docIds = new ArrayList<String>();@Autowiredprivate JobBuilderFactory jobBuilderFactory;@Autowiredprivate StepBuilderFactory stepBuilderFactory;@AutowiredWebController webcontroller;@AutowiredCreateWorksheet createexcel;@Beanpublic Step step1() {return stepBuilderFactory.get("step1").tasklet(new Tasklet() {@Overridepublic RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception, JSONException {String content = webcontroller.getCurrentContent();System.out.println("content is ::" + content);Workbook wb = new XSSFWorkbook();String tabName = "some";createexcel.createWorkSheet(wb, content, tabName);return RepeatStatus.FINISHED;}}).build();}@Beanpublic Job ExcelGenerator() {return jobBuilderFactory.get("ExcelGenerator").start(step1()).build();}}

我們還在其他教程中介紹了Spring Batch,例如將XML轉(zhuǎn)換為JSON + Spring Batch和Spring Batch CSV處理 。

7. Excel創(chuàng)建服務(wù)

我們使用各種類來創(chuàng)建我們的Microsoft Excel文件。 在將HTML轉(zhuǎn)換為RichText時,順序很重要,因此這將是重點。

7.1 RichTextDetails

一個帶有兩個參數(shù)的類:一個字符串,其內(nèi)容將變?yōu)镽ichText,一個字體映射。

public class RichTextDetails {private String richText;private Map<Integer, Font> fontMap;//standard getters and setters@Overridepublic int hashCode() {// The goal is to have a more efficient hashcode than standard one.return richText.hashCode();}

7.2 RichTextInfo

一個POJO,它將跟蹤RichText的位置以及其他內(nèi)容:

public class RichTextInfo {private int startIndex;private int endIndex;private STYLES fontStyle;private String fontValue;// standard getters and setters, and the like

7.3樣式

一個包含要處理HTML標(biāo)記的枚舉。 我們可以根據(jù)需要添加以下內(nèi)容:

public enum STYLES {BOLD("b"), EM("em"), STRONG("strong"), COLOR("color"), UNDERLINE("u"), SPAN("span"), ITALLICS("i"), UNKNOWN("unknown"),PRE("pre");// standard getters and setters

7.4 TagInfo

POJO跟蹤標(biāo)簽信息:

public class TagInfo {private String tagName;private String style;private int tagType;// standard getters and setters

7.5 HTML為RichText

這不是一個小類,所以讓我們按方法進(jìn)行分類。

本質(zhì)上,我們使用div標(biāo)簽將任意HTML包圍起來,因此我們知道我們在尋找什么。 然后,我們在div標(biāo)簽中查找所有元素,將每個元素添加到RichTextDetails的ArrayList中,然后將整個ArrayList傳遞給mergeTextDetails方法。 mergeTextDetails返回RichtextString,這是我們需要設(shè)置單元格值的內(nèi)容:

public RichTextString fromHtmlToCellValue(String html, Workbook workBook){Config.IsHTMLEmptyElementTagRecognised = true;Matcher m = HEAVY_REGEX.matcher(html);String replacedhtml = m.replaceAll("");StringBuilder sb = new StringBuilder();sb.insert(0, "<div>");sb.append(replacedhtml);sb.append("</div>");String newhtml = sb.toString();Source source = new Source(newhtml);List<RichTextDetails> cellValues = new ArrayList<RichTextDetails>();for(Element el : source.getAllElements("div")){cellValues.add(createCellValue(el.toString(), workBook));}RichTextString cellValue = mergeTextDetails(cellValues);return cellValue;}

如上所述,我們在此方法中傳遞了RichTextDetails的ArrayList。 Jericho的設(shè)置采用布爾值來識別空標(biāo)簽元素,例如
:已識別Config.IsHTMLEmptyElementTag。 與在線富文本編輯器打交道時,這可能很重要,因此我們將其設(shè)置為true。 因為我們需要跟蹤元素的順序,所以我們使用LinkedHashMap而不是HashMap。

private static RichTextString mergeTextDetails(List<RichTextDetails> cellValues) {Config.IsHTMLEmptyElementTagRecognised = true;StringBuilder textBuffer = new StringBuilder();Map<Integer, Font> mergedMap = new LinkedHashMap<Integer, Font>(550, .95f);int currentIndex = 0;for (RichTextDetails richTextDetail : cellValues) {//textBuffer.append(BULLET_CHARACTER + " ");currentIndex = textBuffer.length();for (Entry<Integer, Font> entry : richTextDetail.getFontMap().entrySet()) {mergedMap.put(entry.getKey() + currentIndex, entry.getValue());}textBuffer.append(richTextDetail.getRichText()).append(NEW_LINE);}RichTextString richText = new XSSFRichTextString(textBuffer.toString());for (int i = 0; i < textBuffer.length(); i++) {Font currentFont = mergedMap.get(i);if (currentFont != null) {richText.applyFont(i, i + 1, currentFont);}}return richText;}

如上所述,我們使用Java 9來將StringBuilder與java.util.regex.Matcher.appendReplacement結(jié)合使用 。 為什么? 那是因為StringBuffer的運行速度比StringBuilder慢。 StringBuffer函數(shù)是為了線程安全而同步的,因此速度較慢。

我們使用Deque而不是Stack,因為Deque接口提供了更完整和一致的LIFO堆棧操作集:

static RichTextDetails createCellValue(String html, Workbook workBook) {Config.IsHTMLEmptyElementTagRecognised = true;Source source = new Source(html);Map<String, TagInfo> tagMap = new LinkedHashMap<String, TagInfo>(550, .95f);for (Element e : source.getChildElements()) {getInfo(e, tagMap);}StringBuilder sbPatt = new StringBuilder();sbPatt.append("(").append(StringUtils.join(tagMap.keySet(), "|")).append(")");String patternString = sbPatt.toString();Pattern pattern = Pattern.compile(patternString);Matcher matcher = pattern.matcher(html);StringBuilder textBuffer = new StringBuilder();List<RichTextInfo> textInfos = new ArrayList<RichTextInfo>();ArrayDeque<RichTextInfo> richTextBuffer = new ArrayDeque<RichTextInfo>();while (matcher.find()) {matcher.appendReplacement(textBuffer, "");TagInfo currentTag = tagMap.get(matcher.group(1));if (START_TAG == currentTag.getTagType()) {richTextBuffer.push(getRichTextInfo(currentTag, textBuffer.length(), workBook));} else {if (!richTextBuffer.isEmpty()) {RichTextInfo info = richTextBuffer.pop();if (info != null) {info.setEndIndex(textBuffer.length());textInfos.add(info);}}}}matcher.appendTail(textBuffer);Map<Integer, Font> fontMap = buildFontMap(textInfos, workBook);return new RichTextDetails(textBuffer.toString(), fontMap);}

我們可以在這里看到RichTextInfo的使用位置:

private static Map<Integer, Font> buildFontMap(List<RichTextInfo> textInfos, Workbook workBook) {Map<Integer, Font> fontMap = new LinkedHashMap<Integer, Font>(550, .95f);for (RichTextInfo richTextInfo : textInfos) {if (richTextInfo.isValid()) {for (int i = richTextInfo.getStartIndex(); i < richTextInfo.getEndIndex(); i++) {fontMap.put(i, mergeFont(fontMap.get(i), richTextInfo.getFontStyle(), richTextInfo.getFontValue(), workBook));}}}return fontMap;}

我們在哪里使用STYLES枚舉:

private static Font mergeFont(Font font, STYLES fontStyle, String fontValue, Workbook workBook) {if (font == null) {font = workBook.createFont();}switch (fontStyle) {case BOLD:case EM:case STRONG:font.setBoldweight(Font.BOLDWEIGHT_BOLD);break;case UNDERLINE:font.setUnderline(Font.U_SINGLE);break;case ITALLICS:font.setItalic(true);break;case PRE:font.setFontName("Courier New");case COLOR:if (!isEmpty(fontValue)) {font.setColor(IndexedColors.BLACK.getIndex());}break;default:break;}return font;}

我們正在使用TagInfo類來跟蹤當(dāng)前標(biāo)簽:

private static RichTextInfo getRichTextInfo(TagInfo currentTag, int startIndex, Workbook workBook) {RichTextInfo info = null;switch (STYLES.fromValue(currentTag.getTagName())) {case SPAN:if (!isEmpty(currentTag.getStyle())) {for (String style : currentTag.getStyle().split(";")) {String[] styleDetails = style.split(":");if (styleDetails != null && styleDetails.length > 1) {if ("COLOR".equalsIgnoreCase(styleDetails[0].trim())) {info = new RichTextInfo(startIndex, -1, STYLES.COLOR, styleDetails[1]);}}}}break;default:info = new RichTextInfo(startIndex, -1, STYLES.fromValue(currentTag.getTagName()));break;}return info;}

我們處理HTML標(biāo)簽:

private static void getInfo(Element e, Map<String, TagInfo> tagMap) {tagMap.put(e.getStartTag().toString(),new TagInfo(e.getStartTag().getName(), e.getAttributeValue("style"), START_TAG));if (e.getChildElements().size() > 0) {List<Element> children = e.getChildElements();for (Element child : children) {getInfo(child, tagMap);}}if (e.getEndTag() != null) {tagMap.put(e.getEndTag().toString(),new TagInfo(e.getEndTag().getName(), END_TAG));} else {// Handling self closing tagstagMap.put(e.getStartTag().toString(),new TagInfo(e.getStartTag().getName(), END_TAG));}}

7.6創(chuàng)建工作表

使用StringBuilder,我創(chuàng)建了一個要寫入FileOutPutStream的字符串。 在實際應(yīng)用中,應(yīng)由用戶定義。 我在兩個不同的行上附加了文件夾路徑和文件名。 請將文件路徑更改為您自己的文件路徑。

sheet.createRow(0)在第一行創(chuàng)建一行,而dataRow.createCell(0)在該行的列A中創(chuàng)建一個單元格。

public void createWorkSheet(Workbook wb, String content, String tabName) {StringBuilder sbFileName = new StringBuilder();sbFileName.append("/Users/mike/javaSTS/michaelcgood-apache-poi-richtext/");sbFileName.append("myfile.xlsx");String fileMacTest = sbFileName.toString();try {this.fileOut = new FileOutputStream(fileMacTest);} catch (FileNotFoundException ex) {Logger.getLogger(CreateWorksheet.class.getName()).log(Level.SEVERE, null, ex);}Sheet sheet = wb.createSheet(tabName); // Create new sheet w/ Tab namesheet.setZoom(85); // Set sheet zoom: 85%// content rich textRichTextString contentRich = null;if (content != null) {contentRich = htmlToExcel.fromHtmlToCellValue(content, wb);}// begin insertion of values into cellsRow dataRow = sheet.createRow(0);Cell A = dataRow.createCell(0); // Row NumberA.setCellValue(contentRich);sheet.autoSizeColumn(0);try {/// Write the output to a filewb.write(fileOut);fileOut.close();} catch (IOException ex) {Logger.getLogger(CreateWorksheet.class.getName()).log(Level.SEVERE, null, ex);}}

8.演示

我們訪問localhost:8080 。

我們用一些HTML輸入一些文本:

我們打開excel文件,然后看到我們創(chuàng)建的RichText:

9.結(jié)論

我們可以看到將HTML轉(zhuǎn)換為Apache POI的RichTextString類并不是一件容易的事。 但是,對于商業(yè)應(yīng)用程序而言,將HTML轉(zhuǎn)換為RichTextString至關(guān)重要,因為在Microsoft Excel文件中可讀性很重要。 我們構(gòu)建的應(yīng)用程序的性能可能還有改進(jìn)的空間,但是我們涵蓋了構(gòu)建此類應(yīng)用程序的基礎(chǔ)。

完整的源代碼可在Github上找到。

翻譯自: https://www.javacodegeeks.com/2018/01/converting-html-richtextstring-apache-poi.html

總結(jié)

以上是生活随笔為你收集整理的将HTML转换为Apache POI的RichTextString的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

久久精品1区 | 99热999| 五月天国产| 天天操天天操 | 亚洲精品字幕在线 | 九九久久国产精品 | 中文字幕日韩在线播放 | 国产美女精品视频免费观看 | 精品一区二区在线播放 | 国产精品入口66mio女同 | 在线观看久久久久久 | 亚洲最新视频在线播放 | aⅴ视频在线 | 欧美性色综合网 | 亚洲精品乱码久久久久久蜜桃欧美 | 久色小说 | 国产午夜精品视频 | 国产视频精品久久 | 国产白浆视频 | 午夜精品久久久久久久99婷婷 | 久久天天草| 99热在线精品观看 | 日本黄色黄网站 | 天天操天天干天天 | 香蕉影视在线观看 | 91亚·色| 激情视频一区 | 亚洲91中文字幕无线码三区 | 久久精品一二三区白丝高潮 | 日韩网站免费观看 | 欧美精品久久久久久久久久丰满 | av在线色 | 久草在线在线精品观看 | 亚洲1区在线 | 999热视频| www天天干| 久久激情久久 | 成人亚洲精品久久久久 | 免费网址在线播放 | 在线观看激情av | 97成人精品| 99在线精品观看 | 日产乱码一二三区别免费 | 久久99久久精品 | 日韩视频在线观看视频 | 欧美在线视频一区二区 | 久久国产麻豆 | 午夜视频在线观看一区二区 | 96av在线视频 | 九月婷婷人人澡人人添人人爽 | 亚洲精选在线 | 二区视频在线观看 | 亚洲专区视频在线观看 | 久久精品网址 | 久久综合久久综合这里只有精品 | 国产一区二区三区四区大秀 | 一区二区日韩av | 欧美一区二区精品在线 | a资源在线 | 国产亚洲精品久久久久久 | 麻豆国产在线播放 | 日韩av女优视频 | 西西www4444大胆视频 | 国产黄色在线网站 | 91大神精品视频 | 蜜桃传媒一区二区 | 美女视频永久黄网站免费观看国产 | 91在线影院 | 草莓视频在线观看免费观看 | 日本精品久久久久久 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 免费成人看片 | 日韩视频在线观看免费 | 黄色av网站在线观看免费 | 久久夜靖品 | 婷婷六月激情 | 久久久受www免费人成 | 成人黄性视频 | 激情开心站 | 国产一区视频免费在线观看 | 欧美国产日韩久久 | 国产色视频网站 | 免费在线精品视频 | 国内精品视频在线 | 丝袜美腿av | 97av视频| 亚洲va在线va天堂va偷拍 | 国产高清在线 | 欧美性生活小视频 | 亚洲人成综合 | 久草视频在线新免费 | 少妇高潮冒白浆 | 黄色a视频 | 亚洲国产精品成人va在线观看 | 免费黄色在线网址 | 香蕉影院在线观看 | 成人三级黄色 | 99久久影院 | 久久麻豆视频 | 91在线看视频免费 | 国产成人精品网站 | 国产福利免费看 | 色综合狠狠干 | 欧美日韩综合在线 | 国产高清久久久久 | 久久污视频 | 亚洲专区一二三 | 国产黄色大片 | av在线一| 国内精品久久天天躁人人爽 | 日韩在线观看免费 | 久久精品99国产精品亚洲最刺激 | 麻豆视频网址 | 天天射天天操天天干 | 亚洲人成影院在线 | 日本黄色免费观看 | 男女拍拍免费视频 | 国产手机av在线 | 在线观看国产v片 | 国产精品综合久久久久 | 成年人在线观看 | 性色av一区二区 | 91福利在线观看 | 精品在线视频观看 | a视频在线观看免费 | 制服丝袜天堂 | 五月天激情综合 | 国产精品欧美久久久久无广告 | 久久av不卡| av在线一级 | 久操中文字幕在线观看 | 综合久久久久久久久 | 免费色视频网址 | 中文字幕在线观看免费 | 国产精品成久久久久 | 午夜狠狠干 | 日韩精品久久久久久久电影99爱 | 国产一线二线三线在线观看 | 免费观看成人网 | 久久a视频| 69欧美视频| 99久久精品午夜一区二区小说 | 在线免费观看羞羞视频 | 午夜精品久久久久久久99无限制 | 国产精品999久久久 久产久精国产品 | 99热国产在线中文 | 黄色av一区 | 国产白浆视频 | 欧美日韩一区二区免费在线观看 | 中文字幕之中文字幕 | 国产成人久久精品77777 | 成人性生交大片免费观看网站 | 毛片网免费 | 日日夜夜天天综合 | 亚洲另类人人澡 | 超碰人人国产 | 欧美一级日韩三级 | 欧美日韩国产高清视频 | 中文字幕视频观看 | 婷婷丁香花五月天 | 九九热久久久 | 国产一区视频导航 | 婷婷久月 | 欧美日韩伦理在线 | 亚洲春色成人 | 亚洲 欧洲 国产 精品 | 91黄视频在线 | 久久中文欧美 | 在线中文字幕av观看 | 亚洲成人频道 | 最近能播放的中文字幕 | 九九精品视频在线观看 | 亚洲免费国产视频 | 免费av片在线| 在线国产日本 | 人人干狠狠操 | 欧美性色综合网 | 婷婷丁香av | 97色在线视频 | 国产中文字幕精品 | 国产尤物一区二区三区 | 天天射射天天 | 在线观看韩日电影免费 | 久亚洲精品| 91九色视频在线观看 | 91视频在线观看大全 | 天天干 夜夜操 | 婷婷色中文字幕 | 偷拍福利视频一区二区三区 | 一区二区三区在线不卡 | 九九综合在线 | 亚洲成人蜜桃 | 中文字幕av日韩 | 在线а√天堂中文官网 | 中文字幕字幕中文 | 日韩免费在线观看视频 | 成人免费视频a | 美女亚洲精品 | 成年人视频免费在线 | www国产亚洲精品久久麻豆 | 久久人人爽人人人人片 | 一区二区伦理 | 国产涩涩在线观看 | 国产中文字幕网 | 天天操天 | 婷婷去俺也去六月色 | www.久久婷婷 | 在线综合 亚洲 欧美在线视频 | 在线观看视频在线观看 | 狠狠插狠狠操 | 狠狠色伊人亚洲综合网站野外 | av天天澡天天爽天天av | 六月婷婷网 | 色a在线观看 | 国产黄色在线 | 国产精品免费观看在线 | 99色亚洲 | www.av中文字幕.com | 国产操在线 | 久久五月婷婷综合 | 成人黄色国产 | 成人黄在线观看 | 日韩二区在线播放 | www·22com天天操 | 久草在线手机视频 | 激情五月播播久久久精品 | 午夜国产一区二区 | 成人av.com| 国产成人在线精品 | 亚洲一区二区三区毛片 | 中文字幕在线视频国产 | www最近高清中文国语在线观看 | 亚洲日本va午夜在线影院 | 91资源在线播放 | 亚洲一级性 | 亚洲日本va午夜在线电影 | 一区二区中文字幕在线观看 | 亚洲精品色视频 | 91亚洲综合 | av片一区二区 | 久草网站在线观看 | 特级xxxxx欧美 | 国产精品成人自产拍在线观看 | 国产a网站 | 一区二区三区在线影院 | 亚洲精品视频免费在线 | 在线观看黄a | 韩国一区视频 | 欧美精品xxx | 一区二区三区中文字幕在线 | 亚洲精品电影在线 | 亚洲午夜久久久久久久久 | 91桃色在线播放 | 国产精品不卡av | 日韩xxxxxxxxx| 狠狠狠操 | 婷婷伊人网| 欧美 激情 国产 91 在线 | 91禁在线观看 | 国产乱老熟视频网88av | 夜色资源网 | 午夜久久久久久久久久久 | 久久另类小说 | 99视频精品全国免费 | 美女视频网 | 人人插人人看 | 97碰视频| 欧美国产不卡 | 日韩高清www| 国产在线精品一区二区三区 | 99国产视频| 日韩高清一区在线 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 国产专区日韩专区 | 亚洲一区欧美精品 | 毛片一级免费一级 | 国产在线最新 | 日本狠狠色 | 999精品| 98涩涩国产露脸精品国产网 | 精品国产电影 | a在线观看视频 | 91九色蝌蚪国产 | 伊人久久影视 | 国内精品久久久久影院优 | 国产精品免费成人 | 亚洲欧洲精品一区二区精品久久久 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 免费观看性生活大片3 | 久久精品99国产精品亚洲最刺激 | 天天干 夜夜操 | 综合网天天色 | 97香蕉久久国产在线观看 | 深爱激情开心 | 亚洲国内精品视频 | 亚洲成a人片综合在线 | 最近中文字幕在线 | av免费观看在线 | 欧美乱码精品一区二区 | avwww在线观看 | 成人在线观看你懂的 | 成人毛片100免费观看 | 中文字幕在线字幕中文 | 亚洲涩综合 | 久久久av免费 | 黄色的视频网站 | 国产精品久久久久久久免费观看 | 国产无套视频 | 又黄又爽免费视频 | 日韩一区二区三区在线看 | 亚洲欧美激情精品一区二区 | 久久综合福利 | 成人国产精品电影 | 久久精品视频18 | 亚洲波多野结衣 | 亚洲一二三区精品 | 久草免费色站 | 国产蜜臀av| 国产一区免费 | 午夜av剧场 | 久草免费在线观看视频 | 超碰在线免费福利 | 国产日韩欧美在线播放 | 97在线精品视频 | 激情电影影院 | 国产色网 | 九九免费在线观看视频 | 亚洲视屏| 国产日韩欧美在线一区 | 国产在线一线 | 国产三级香港三韩国三级 | 亚洲一区二区三区miaa149 | 视频成人永久免费视频 | 亚洲激情视频在线观看 | 天天操夜夜做 | 91精品小视频 | 日韩视频免费 | 日韩精品视频久久 | 综合黄色网 | 毛片激情永久免费 | 中文在线a√在线 | 精品久久久影院 | 免费在线电影网址大全 | 日韩在线不卡av | 国产激情久久久 | 永久免费精品视频 | 五月天亚洲综合 | 亚洲精品国精品久久99热一 | 日韩网站一区二区 | 国产网站在线免费观看 | 精品久久久久国产免费第一页 | 亚洲精品字幕在线 | av免费在线免费观看 | 亚洲黄色片在线 | 天天干夜夜擦 | 婷婷丁香七月 | 国产一区二区在线看 | 中文字幕成人在线观看 | 久草视频免费看 | 四虎影视成人精品国库在线观看 | 国产91丝袜在线播放动漫 | 狠狠干狠狠久久 | 婷婷精品国产欧美精品亚洲人人爽 | 9i看片成人免费看片 | 日韩高清在线一区二区三区 | 国产高清免费视频 | 正在播放久久 | 中文字幕韩在线第一页 | 久久女同性恋中文字幕 | 天天摸天天干天天操天天射 | 亚洲乱亚洲乱亚洲 | 国产不卡免费视频 | 婷婷av电影 | 97在线成人 | 久久亚洲热 | 亚洲综合欧美日韩狠狠色 | 欧美另类网站 | 欧美a性| 亚洲五月六月 | 不卡在线一区 | 亚洲婷婷综合色高清在线 | 国产视频精品久久 | 91人人在线| 国产免费a| 国产高清视频在线免费观看 | 97国产精品亚洲精品 | 91黄色免费网站 | 五月视频 | 久久精品久久久久电影 | 免费在线观看国产精品 | 天天操天天操天天爽 | 亚洲欧美国产精品va在线观看 | 免费成人在线网站 | 欧洲精品视频一区 | 毛片区| av成人免费在线 | 探花视频免费观看高清视频 | 91亚洲精品国偷拍自产在线观看 | 亚洲成人精品 | 四川妇女搡bbbb搡bbbb搡 | 不卡的av| 天天操天天草 | 激情视频在线高清看 | 色综合久久久久 | 日韩在线观看三区 | 成人av一区二区在线观看 | 久久线视频 | 日韩在线观看视频网站 | 久久一二三四 | 国产理论片在线观看 | 久久久久久久久久久免费视频 | 91久久久久久国产精品 | 久久免费视频5 | 4438全国亚洲精品观看视频 | 中文字幕免费高 | 99r在线精品 | www久久九| 国产激情小视频在线观看 | 激情欧美丁香 | 久草在线资源观看 | 欧美一区二区日韩一区二区 | 天天干天天操天天操 | 亚洲精品乱码久久久久久蜜桃91 | 伊人天堂av| 永久免费精品视频网站 | 亚洲国产美女久久久久 | 欧美精品在线观看免费 | 五月婷婷中文 | 久久人人爽人人人人片 | 韩日精品在线观看 | 国产精品6 | 欧美最新大片在线看 | 亚洲精品在线观看中文字幕 | 一区二区三区免费看 | 2023亚洲精品国偷拍自产在线 | 国产999精品久久久影片官网 | 99亚洲国产 | 国产精品九九热 | 精品二区视频 | 国产精品国产三级国产不产一地 | 国产成人精品女人久久久 | 国产 欧美 日本 | 香蕉影院在线播放 | 日韩精品免费专区 | 国产视频亚洲视频 | 91成人精品 | 久久只精品99品免费久23小说 | 欧美一级片免费观看 | 天天躁日日 | 国产999久久久 | 久久久久久麻豆 | 久久久久久久国产精品视频 | 91av资源在线 | 日本色小说视频 | 国产精品久久久久久模特 | 国产精品美女久久久久久久久 | 在线观看的av | 亚洲 综合 国产 精品 | 九九日韩| 中文字幕在线观看一区二区三区 | 亚洲国产精品成人女人久久 | 中文字幕免费高清av | 日韩欧美一区二区三区免费观看 | 日日爽日日操 | 免费看成人 | 97看片 | 欧美成人aa | 色综合天天狠天天透天天伊人 | 中文字幕日韩在线播放 | 久久人人爽人人 | 午夜在线观看 | 欧美日韩69 | 深爱开心激情网 | 精品久久久免费 | 免费网站观看www在线观看 | 国产精品欧美精品 | 婷婷丁香激情五月 | 麻豆传媒电影在线观看 | 国产1级毛片 | 91av蜜桃| 在线观看黄色小视频 | 免费高清男女打扑克视频 | 久久综合精品国产一区二区三区 | 精品成人免费 | 欧美性生交大片免网 | 亚洲aaa毛片 | 九九视频精品免费 | av.com在线| av在线短片| 精品国产伦一区二区三区 | 五月天色网站 | 久草在线手机视频 | 97香蕉超级碰碰久久免费软件 | 午夜国产一区二区三区四区 | 日操干 | 九九亚洲视频 | a级片久久久 | av超碰在线 | 久久精品波多野结衣 | 国产精品一区二区免费视频 | 天天草网站 | 又黄又刺激又爽的视频 | 久久久久国产精品厨房 | 麻豆视频在线免费看 | 热99在线视频 | 欧美精品亚洲二区 | 国产美女无遮挡永久免费 | 黄色网址在线播放 | 久久午夜剧场 | 婷婷视频导航 | 一区二区三区久久 | 97国产大学生情侣酒店的特点 | 免费观看一级视频 | 在线免费高清 | 91探花国产综合在线精品 | 天天爱天天射天天干天天 | 日本h视频在线观看 | 97麻豆视频| 国产成人资源 | 久久久久北条麻妃免费看 | 69中文字幕 | 久久精品在线 | 国产成人精品日本亚洲999 | 91日韩精品一区 | 成人av午夜 | 国产高清视频在线观看 | 亚洲精品综合在线观看 | 久久午夜免费视频 | 日本99精品 | 久久久久国产精品免费网站 | 欧美激情视频一区二区三区 | 亚洲欧洲xxxx| 99精品国产福利在线观看免费 | 国产精品岛国久久久久久久久红粉 | 中文字幕av免费观看 | 亚洲性xxxx | 国产成人精品一区一区一区 | 国产精品美女免费看 | 国内精品中文字幕 | 97人人添人澡人人爽超碰动图 | 久久精品5 | 国产午夜精品福利视频 | 中文字幕在线高清 | 在线观看视频黄色 | 91视频com| 亚洲精品国产精品乱码不99热 | av资源中文字幕 | 五月婷婷综合网 | 96视频在线 | 久久综合九色欧美综合狠狠 | 国产麻豆精品久久一二三 | 精品91久久久久 | 日韩影片在线观看 | 97超碰在 | 亚洲一区 影院 | 国产精品久久久久久99 | 超碰97免费观看 | 欧美精品三级在线观看 | 国产视频一区二区三区在线 | 国产精品久久久久久欧美 | 一区二区三区视频在线 | 日韩一区二区三区免费视频 | 91精选在线观看 | 在线视频99 | 国产亚洲精品久久久久动 | 久热国产视频 | 久久久国产99久久国产一 | 999久久a精品合区久久久 | 国产精品二区三区 | 一本一本久久a久久 | 久久香蕉国产精品麻豆粉嫩av | 在线精品观看 | 国产一区av在线 | 免费网址你懂的 | 欧日韩在线 | www.com久久久| av中文字幕在线电影 | 人人爽人人爽人人片 | 国产伦精品一区二区三区无广告 | 天堂麻豆| 久久99久国产精品黄毛片入口 | 99精品视频免费看 | 色综合久久久久综合体桃花网 | 中文字幕精品一区二区三区电影 | 91大神dom调教在线观看 | 999久久国产 | 伊人中文在线 | 91成人在线视频观看 | 久久久久久久久久久免费视频 | 久久免费视屏 | 国际精品久久久久 | 免费网站黄色 | 国产精品欧美久久久久三级 | 欧美国产日韩激情 | 国产黄色大全 | 国产玖玖精品视频 | 香蕉视频日本 | 涩涩网站在线观看 | 国产精品亚洲精品 | 黄色特级毛片 | 免费人成在线观看网站 | 精品国产1区2区3区 国产欧美精品在线观看 | 97在线视频免费播放 | 亚洲精品国产第一综合99久久 | 久久久久成人精品亚洲国产 | 丁香花在线视频观看免费 | 美女免费av| 98超碰在线观看 | 日韩视频免费在线观看 | 欧美激情综合五月色丁香 | 日本高清中文字幕有码在线 | 欧美一区中文字幕 | 99国产精品久久久久老师 | 久色婷婷 | 91九色蝌蚪国产 | 免费视频xnxx com | 国产r级在线观看 | 欧美日韩国产在线精品 | 国产亚洲一区 | 国产黄色片一级三级 | 亚洲精品国产精品99久久 | 在线免费精品视频 | 果冻av在线 | 国产亚洲精品久久久久久网站 | 婷婷电影网| 九九九在线观看视频 | 国产专区视频在线观看 | 麻豆视频大全 | 久久精品国产美女 | 免费亚洲精品视频 | 日韩av一区二区三区 | 91久久久久久久一区二区 | 天天色.com | 九九九九九九精品任你躁 | 国产护士在线 | 美女黄视频免费看 | 色多多污污在线观看 | 国产中文字幕视频在线观看 | 亚洲综合射 | 免费午夜网站 | 国产一级淫片在线观看 | av电影免费在线播放 | 日韩在线精品视频 | 欧美国产日韩一区 | 国产a高清 | 菠萝菠萝在线精品视频 | 成人免费网站视频 | 97超碰.com | 日韩理论在线视频 | 欧美日韩视频一区二区 | 一区二区中文字幕在线播放 | 在线中文字幕观看 | 国产精品网站一区二区三区 | 美女一级毛片视频 | 成人黄色电影在线播放 | 看片一区二区三区 | 黄色毛片在线观看 | 91网址在线看 | 午夜色性片 | 91九色在线 | 粉嫩一区二区三区粉嫩91 | 九九精品视频在线看 | 天天干天天摸 | 国产精品一区二区在线免费观看 | 日日弄天天弄美女bbbb | 久热久草在线 | 日韩欧美精品在线 | 亚洲欧美日韩国产一区二区 | 在线激情小视频 | 久久论理 | 亚洲成人av片 | 在线亚洲小视频 | 日韩免费电影网 | 久久综合之合合综合久久 | 欧美精品国产综合久久 | 香蕉视频在线免费看 | 一区二区不卡高清 | 一区二区在线影院 | 夜夜摸夜夜爽 | 在线成人高清电影 | 欧美精品亚洲精品 | 国产你懂的在线 | 国产精品久久久久婷婷 | 一级淫片在线观看 | av中文字幕在线免费观看 | 日韩高清在线一区 | 免费视频国产 | 成人一区影院 | 四虎影视成人永久免费观看亚洲欧美 | 国产精品一区二区电影 | 亚洲一区二区观看 | 伊人热| 中文字幕中文中文字幕 | 天天干天天拍天天操 | 国产无吗一区二区三区在线欢 | 亚洲午夜av久久乱码 | 午夜精品久久久 | 999久久a精品合区久久久 | 九九九国产 | 玖玖玖精品 | 99综合电影在线视频 | 久久国产精品网站 | 免费在线观看午夜视频 | 五月激情婷婷丁香 | 亚洲男模gay裸体gay | 激情大尺度视频 | 国产精品99久久久久久人免费 | 久久精彩 | 欧美性色黄大片在线观看 | 日日夜夜中文字幕 | 天天天天射 | 亚洲乱码精品久久久久 | 天天干天天插伊人网 | 日韩免费一级a毛片在线播放一级 | 亚洲精品视频偷拍 | 美女福利视频网 | 久久高清av | 亚洲色图 校园春色 | 婷婷激情久久 | 激情五月伊人 | www.com久久| 91精品在线免费观看 | 五月开心婷婷 | 免费视频色 | 超碰99在线 | 国产91区 | 久久精品国产一区二区电影 | 久久手机免费视频 | 中文字幕av一区二区三区四区 | 欧美-第1页-屁屁影院 | 国产亚洲字幕 | 亚洲精品网址在线观看 | 久久 在线 | 91免费高清 | 亚洲黄色a | 青青久草在线视频 | 久久伦理电影网 | 国产女人40精品一区毛片视频 | 91av蜜桃 | 五月综合色婷婷 | 人人爽人人爽av | 国产剧情在线一区 | 中文字幕在线观看一区二区 | 中文字幕精品视频 | 国产 日韩 在线 亚洲 字幕 中文 | 97色婷婷成人综合在线观看 | 9999免费视频 | av网站在线免费观看 | 免费观看9x视频网站在线观看 | 久久免费精彩视频 | 午夜av色| 激情视频免费观看 | 欧美一区二区三区在线观看 | 美女视频网站久久 | av免费在线观看网站 | 深夜免费福利视频 | 美女视频黄在线观看 | 国产精品99久久久 | 欧美在线日韩在线 | 91高清免费观看 | 99久久久久国产精品免费 | 91chinese在线 | 一区二区三区av在线 | 人人爽久久涩噜噜噜网站 | 日韩视频精品在线 | 久久精品一区二区 | 伊人资源视频在线 | 久久精品九色 | 国产亚洲欧美在线视频 | 91亚洲精品久久久 | 国产精品2020| 探花系列在线 | 久久精品视频在线免费观看 | 久久免费视频在线观看6 | 99性视频 | 国内精品久久久久久久久 | 91亚州 | 婷婷综合在线 | 欧美精品中文在线免费观看 | 国产探花 | 精品美女久久久久 | www.五月激情.com | 久久久蜜桃一区二区 | 国产精品手机播放 | 国产精品 中文在线 | 国产高清中文字幕 | 天天操天天干天天摸 | 啪啪肉肉污av国网站 | 日韩最新av在线 | 69国产精品视频 | 五月开心激情网 | 国产成人精品av | 亚洲免费av在线播放 | 蜜臀久久99精品久久久久久网站 | 午夜久久久影院 | 欧美日韩一区二区视频在线观看 | 亚洲激情 欧美激情 | 久草久视频 | 91视频麻豆视频 | 808电影免费观看三年 | 国产又粗又长又硬免费视频 | 一区二区三区精品在线 | 亚洲va韩国va欧美va精四季 | av视屏在线播放 | 亚洲视频电影在线 | 国产精品久久久一区二区三区网站 | 99热播精品 | 久久久久久久久影视 | 日韩av成人在线观看 | av日韩精品 | 中午字幕在线 | 99久久婷婷| 欧美激情精品久久久久久免费印度 | 天天操天天添天天吹 | 国产视频日韩视频欧美视频 | 99精品欧美一区二区三区 | 一本一本久久aa综合精品 | 国模视频一区二区三区 | 国产精品一区二区62 | 夜夜躁日日躁狠狠久久av | 麻豆视频免费播放 | 欧美有色 | 日韩最新理论电影 | 在线免费观看黄 | 亚洲黄色免费在线 | 九九热在线精品视频 | 久久久久久久久精 | 狠狠地操 | 狠狠的日日 | 四虎8848免费高清在线观看 | 97超碰免费| 97视频入口免费观看 | 97高清视频 | 可以免费观看的av片 | 久久激情视频 久久 | 欧美久久久久久久久久久久 | 免费成人短视频 | 久久久影院一区二区三区 | 国产男女爽爽爽免费视频 | 久久字幕网| 深爱五月激情网 | 久草网在线视频 | 日韩 精品 一区 国产 麻豆 | 国产免费嫩草影院 | 久久久激情视频 | 国内成人精品2018免费看 | 91成人在线网站 | 成人精品一区二区三区中文字幕 | 日日躁你夜夜躁你av蜜 | 久久专区 | 少妇资源站 | 在线国产能看的 | 国产在线1区 | 九九在线播放 | 99视频免费看 | 日韩在线视频观看免费 | 亚洲 欧洲 国产 日本 综合 | 91成版人在线观看入口 | 九九热只有这里有精品 | 国产系列在线观看 | 日韩资源在线播放 | 91在线精品播放 | 免费亚洲成人 | 国产涩图| 国产91九色蝌蚪 | 夜夜澡人模人人添人人看 | 免费久久久 | 精品国精品自拍自在线 | 久久老司机精品视频 | 香蕉久久久久久久 | 丁香视频在线观看 | 成片免费观看视频 | 黄色成人在线网站 | 丁香六月婷婷开心婷婷网 | 99精品视频在线观看播放 | 久久综合狠狠综合久久综合88 | 国产一级不卡视频 | 久久人人爽爽 | 精品国产观看 | 亚洲国产无| 五月婷婷综合在线视频 | 国产精品一区二区三区四区在线观看 | 中文字幕中文字幕 | 久在线 | 2019中文| 天天插天天操天天干 | 97视频免费 | 最近中文字幕完整高清 | 激情开心站 | 久久歪歪 | 亚洲精品国产综合99久久夜夜嗨 | 亚洲国产日韩精品 | 福利久久久 | 在线观看日本高清mv视频 | 亚洲资源视频 | 三上悠亚一区二区在线观看 | 国产精品毛片一区二区 | 欧美人交a欧美精品 | 婷婷综合亚洲 | 91av资源在线 | 91香蕉视频 | 国产二区av | 91麻豆网站 | 九九热免费在线视频 | 就要干b | 一区二区三区韩国免费中文网站 | 亚洲精品自在在线观看 | 亚洲成人在线免费 | 中文字幕美女免费在线 | 国产在线专区 | 精品国产1区2区3区 国产欧美精品在线观看 | 亚洲美女精品视频 | 91精品国自产在线偷拍蜜桃 | 亚洲精品视频网站在线观看 | 日韩高清不卡一区二区三区 | 91漂亮少妇露脸在线播放 | 欧美伊人网 | 日韩精品你懂的 | 国产精品视频app | 91桃色视频| 国产精品video爽爽爽爽 | 国产 在线 高清 精品 | 日本3级在线观看 | 欧美日韩国产精品一区二区 | 成人久久精品 | 五月天婷婷综合 | 国产涩图 | 久久久久激情 | 成片免费观看视频 | www.午夜色.com| 欧美日韩在线观看一区 | 婷婷六月色 | 亚洲成a人片77777kkkk1在线观看 | 99精品欧美一区二区蜜桃免费 | 婷婷丁香在线观看 | 亚洲精品视频在线观看网站 | 超碰97免费在线 | 91成人久久 | 国产一区二区不卡视频 | 国产精品久免费的黄网站 | 中文字幕久久精品 | 久久久久久蜜av免费网站 | 日韩中文字幕国产 | 色久天 | 午夜手机看片 | 99在线精品视频 | 久久色视频 | 狠狠色丁香久久婷婷综合五月 | 国产精品一区二区免费视频 | 日韩视频专区 | 国产又黄又硬又爽 | 激情欧美xxxx| 久久免费福利视频 | 99国产精品久久久久久久久久 | 日韩欧美69 | 丁香五婷| 在线观看福利网站 | 丁香资源影视免费观看 | 五月天com | 黄色av一区二区三区 | 在线观看aaa | 日本中出在线观看 | av资源在线观看 | 欧美一级片免费 | 午夜三级福利 | 免费在线一区二区 | 久久精品美女视频 | 亚洲欧美日韩精品一区二区 | 久草电影免费在线观看 | 欧美成天堂网地址 | 久久成人高清视频 | 天天骚夜夜操 | 日韩三级视频 | 国产亚洲精品久久久久久网站 | 欧美日韩免费网站 | 天天夜夜亚洲 | 综合久久久久 | 日韩中文字幕在线观看 | av在线一| 久草在线观看视频免费 | 最新日韩视频在线观看 | 久久精品国产精品亚洲精品 | 黄污在线观看 | 国产色视频123区 | 91在线视频观看免费 | 国产精品美乳一区二区免费 | 最新国产福利 | 久久影视网 | 欧美国产一区在线 | 日日操操操 | 日韩一级片大全 | 欧美日韩在线观看不卡 | 91精品网站 | 人人爽人人乐 | 在线黄色毛片 | 天海冀一区二区三区 | 天天操导航 | 国产精品美 |