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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

webapp文本编辑器_Project Student:维护Webapp(可编辑)

發布時間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 webapp文本编辑器_Project Student:维护Webapp(可编辑) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

webapp文本編輯器

這是Project Student的一部分。 其他職位包括帶有Jersey的 Web服務 客戶端,帶有Jersey的 Web服務服務器 , 業務層 , 帶有Spring數據的持久性 ,分片集成測試數據 , Webservice集成 , JPA標準查詢和維護Webapp(只讀) 。

上次我們創建了一個簡單的Web應用程序,使我們可以快速瀏覽數據庫。 它的功能非常有限–主要目標是將整個系統(從Web瀏覽器到數據庫)的整個系統組合在一起。 這次我們添加了實際的CRUD支持。

這篇文章是從Jumpstart網站大量借用的,但有很大的不同。 有很多代碼,但是很容易重用。

局限性

  • 用戶身份驗證 –尚未進行身份驗證的工作。
  • 加密 -尚未對通信進行加密。
  • 分頁 –尚未做出任何努力來支持分頁。 Tapestry 5組件將顯示分頁外觀,但始終包含相同的第一頁數據。
  • 錯誤消息 –將顯示錯誤消息,但服務器端錯誤目前尚無信息。
  • 跨站點腳本(XSS) –尚未做出任何努力來防止XSS攻擊。
  • 國際化 –尚未做出任何努力來支持國際化。

目標

我們需要標準的CRUD頁面。

首先,我們需要能夠創建一門新課程。 當我們沒有任何數據時,我們的課程列表應包含一個鏈接作為默認消息。 (第一個“創建...”是一個單獨的元素。)

現在,創建頁面具有多個字段。 代碼唯一地標識一門課程,例如CSCI 101,其名稱,摘要和說明應不言自明。

創建成功后,我們將進入評論頁面。

如果需要進行更改,然后返回更新頁面。

任何時候我們都可以返回列表頁面。

在刪除記錄之前,系統會提示我們進行確認。

最后,我們可以顯示服務器端錯誤,例如,即使當前消息非常無用,也要顯示唯一字段中的重復值。

我們也有客戶端錯誤檢查,盡管我在這里沒有顯示。

Index.tml

我們從索引頁面開始。 這類似于我們在上一篇文章中看到的內容。

Tapestry 5具有三種主要類型的鏈接。 頁面鏈接映射到標準HTML鏈接。 一個ActionLink的是直接由相應的類,例如,Index.java為Index.tml模板處理。 最后,事件鏈接將事件注入掛毯引擎內的正常事件流。 我所有的鏈接都轉到一個密切相關的頁面,所以我使用一個動作鏈接。

<html t:type="layout" title="Course List"t:sidebarTitle="Framework Version"xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"xmlns:p="tapestry:parameter"><t:zone t:id="zone"> <p>"Course" page</p><t:actionlink t:id="create">Create...</t:actionlink><br/><t:grid source="courses" row="course" include="code, name,creationdate" add="edit,delete"><p:codecell><t:actionlink t:id="view" context="course.uuid">${course.code}</t:actionlink></p:codecell><p:editcell><t:actionlink t:id="update" context="course.uuid">Edit</t:actionlink></p:editcell><p:deletecell><t:actionlink t:id="delete" context="course.uuid" t:mixins="Confirm" t:message="Delete ${course.name}?">Delete</t:actionlink></p:deletecell><p:empty><p>There are no courses to display; you can <t:actionlink t:id="create1">create</t:actionlink> one.</p></p:empty></t:grid></t:zone><p:sidebar><p>[<t:pagelink page="Index">Index</t:pagelink>]<br/>[<t:pagelink page="Course/Index">Courses</t:pagelink>]</p></p:sidebar></html>

確認混入

Index.tml模板在刪除操作鏈接上包含一個“ mixin”。 它使用javascript和Java的混合顯示彈出消息,要求用戶確認他要刪除課程。

此代碼直接來自Jumpstart和Tapestry網站。

// from http://jumpstart.doublenegative.com.au/ Confirm = Class.create({initialize: function(elementId, message) {this.message = message;Event.observe($(elementId), 'click', this.doConfirm.bindAsEventListener(this));},doConfirm: function(e) {// Pop up a javascript Confirm Box (see http://www.w3schools.com/js/js_popup.asp)if (!confirm(this.message)) {e.stop();}} })// Extend the Tapestry.Initializer with a static method that instantiates a Confirm.Tapestry.Initializer.confirm = function(spec) {new Confirm(spec.elementId, spec.message); }

相應的Java代碼是

// from http://jumpstart.doublenegative.com.au/ @Import(library = "confirm.js") public class Confirm {@Parameter(name = "message", value = "Are you sure?", defaultPrefix = BindingConstants.LITERAL)private String message;@Injectprivate JavaScriptSupport javaScriptSupport;@InjectContainerprivate ClientElement clientElement;@AfterRenderpublic void afterRender() {// Tell the Tapestry.Initializer to do the initializing of a Confirm,// which it will do when the DOM has been// fully loaded.JSONObject spec = new JSONObject();spec.put("elementId", clientElement.getClientId());spec.put("message", message);javaScriptSupport.addInitializerCall("confirm", spec);} }

Index.java

支持索引模板的Java很簡單,因為我們只需要定義一個數據源并提供一些動作處理程序即可。

package com.invariantproperties.sandbox.student.maintenance.web.pages.course;public class Index {@Property@Inject@Symbol(SymbolConstants.TAPESTRY_VERSION)private String tapestryVersion;@InjectComponentprivate Zone zone;@Injectprivate CourseFinderService courseFinderService;@Injectprivate CourseManagerService courseManagerService;@Propertyprivate Course course;// our sibling page@InjectPageprivate com.invariantproperties.sandbox.student.maintenance.web.pages.course.Editor editorPage;/*** Get the datasource containing our data.* * @return*/public GridDataSource getCourses() {return new CoursePagedDataSource(courseFinderService);}/*** Handle a delete request. This could fail, e.g., if the course has already* been deleted.* * @param courseUuid*/void onActionFromDelete(String courseUuid) {courseManagerService.deleteCourse(courseUuid, 0);}/*** Bring up editor page in create mode.* * @param courseUuid* @return*/Object onActionFromCreate() {editorPage.setup(Mode.CREATE, null);return editorPage;}/*** Bring up editor page in create mode.* * @param courseUuid* @return*/Object onActionFromCreate1() {return onActionFromCreate();}/*** Bring up editor page in review mode.* * @param courseUuid* @return*/Object onActionFromView(String courseUuid) {editorPage.setup(Mode.REVIEW, courseUuid);return editorPage;}/*** Bring up editor page in update mode.* * @param courseUuid* @return*/Object onActionFromUpdate(String courseUuid) {editorPage.setup(Mode.UPDATE, courseUuid);return editorPage;} }

Editor.tml

CRUD頁面可以是三個單獨的頁面(用于創建,查看和更新??),也可以是一個頁面。 我遵循的是Jumpstart網站使用的模式–一個頁面。 老實說-我不確定他為什么做出這個決定-也許是因為頁面緊密相關并且他使用事件處理? 無論如何,我將分別討論這些元素。

創建模板

“創建”模板是一種簡單的形式。 您可以看到HTML <input>元素得到了增強,它們具有一些特定于掛毯的屬性,以及一些其他標記,例如<t:errors />和<t:submit>。

CustomForm和CustomError是標準Tapestry Form和Error類的本地擴展。 它們目前為空,但允許我們輕松添加本地擴展。

<html t:type="layout" title="Course Editor"t:sidebarTitle="Framework Version"xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"><t:zone t:id="zone"> <t:if test="modeCreate"><h1>Create</h1><form t:type="form" t:id="createForm" ><t:errors/><table><tr><th><t:label for="code"/>:</th><td><input t:type="TextField" t:id="code" value="course.code" t:validate="required, maxlength=12" size="12"/></td><td>(required)</td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="code"/></td></tr><tr><th><t:label for="name"/>:</th><td><input t:type="TextField" t:id="name" value="course.name" t:validate="required, maxlength=80" size="45"/></td><td>(required)</td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="name"/></td></tr><tr><th><t:label for="summary"/>:</th><td><input cols="50" rows="4" t:type="TextArea" t:id="summary" value="course.summary" t:validate="maxlength=400"/></td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="summary"/></td></tr><tr><th><t:label for="description"/>:</th><td><input cols="50" rows="12" t:type="TextArea" t:id="description" value="course.description" t:validate="maxlength=2000"/></td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="description"/></td></tr></table><div class="buttons"><t:submit t:event="cancelCreate" t:context="course.uuid" value="Cancel"/><input type="submit" value="Save"/></div></form></t:if>... </html>

創建java

  • 相應的java類很簡單。 我們必須定義一些自定義事件。
  • ActivationRequestParameter值是從URL查詢字符串中提取的。
  • 課程字段包含創建新對象時要使用的值。
  • courseForm字段在模板上包含相應的<form>。
  • indexPage包含對索引頁的引用。

有四個名為onEventFromCreateForm的事件處理程序,其中event
可以準備,驗證,成功或失敗。 每個事件處理程序都有非常特定的角色。

還有一個附加的事件處理程序onCancelCreate() 。 您可以在模板的<t:submit>標記中看到該事件的名稱。

/*** This component will trigger the following events on its container (which in* this example is the page):* {@link Editor.web.components.examples.component.crud.Editor#CANCEL_CREATE} ,* {@link Editor.web.components.examples.component.crud.Editor#SUCCESSFUL_CREATE}* (Long courseUuid),* {@link Editor.web.components.examples.component.crud.Editor#FAILED_CREATE} ,*/ // @Events is applied to a component solely to document what events it may // trigger. It is not checked at runtime. @Events({ Editor.CANCEL_CREATE, Editor.SUCCESSFUL_CREATE, Editor.FAILED_CREATE }) public class Editor {public static final String CANCEL_CREATE = "cancelCreate";public static final String SUCCESSFUL_CREATE = "successfulCreate";public static final String FAILED_CREATE = "failedCreate";public enum Mode {CREATE, REVIEW, UPDATE;}// Parameters@ActivationRequestParameter@Propertyprivate Mode mode;@ActivationRequestParameter@Propertyprivate String courseUuid;// Screen fields@Propertyprivate Course course;// Work fields// This carries version through the redirect that follows a server-side// validation failure.@Persist(PersistenceConstants.FLASH)private Integer versionFlash;// Generally useful bits and pieces@Injectprivate CourseFinderService courseFinderService;@Injectprivate CourseManagerService courseManagerService;@Componentprivate CustomForm createForm;@Injectprivate ComponentResources componentResources;@InjectPageprivate com.invariantproperties.sandbox.student.maintenance.web.pages.course.Index indexPage;// The codepublic void setup(Mode mode, String courseUuid) {this.mode = mode;this.courseUuid = courseUuid;}// setupRender() is called by Tapestry right before it starts rendering the// component.void setupRender() {if (mode == Mode.REVIEW) {if (courseUuid == null) {course = null;// Handle null course in the template.} else {if (course == null) {try {course = courseFinderService.findCourseByUuid(courseUuid);} catch (ObjectNotFoundException e) {// Handle null course in the template.}}}}}// /// CREATE// /// Handle event "cancelCreate"Object onCancelCreate() {return indexPage;}// Component "createForm" bubbles up the PREPARE event when it is rendered// or submittedvoid onPrepareFromCreateForm() throws Exception {// Instantiate a Course for the form data to overlay.course = new Course();}// Component "createForm" bubbles up the VALIDATE event when it is submittedvoid onValidateFromCreateForm() {if (createForm.getHasErrors()) {// We get here only if a server-side validator detected an error.return;}try {course = courseManagerService.createCourse(course.getCode(), course.getName(), course.getSummary(),course.getDescription(), 1);} catch (RestClientFailureException e) {createForm.recordError("Internal error on server.");createForm.recordError(e.getMessage());} catch (Exception e) {createForm.recordError(ExceptionUtil.getRootCauseMessage(e));}}// Component "createForm" bubbles up SUCCESS or FAILURE when it is// submitted, depending on whether VALIDATE// records an errorboolean onSuccessFromCreateForm() {componentResources.triggerEvent(SUCCESSFUL_CREATE, new Object[] { course.getUuid() }, null);// We don't want "success" to bubble up, so we return true to say we've// handled it.mode = Mode.REVIEW;courseUuid = course.getUuid();return true;}boolean onFailureFromCreateForm() {// Rather than letting "failure" bubble up which doesn't say what you// were trying to do, we trigger new event// "failedCreate". It will bubble up because we don't have a handler// method for it.componentResources.triggerEvent(FAILED_CREATE, null, null);// We don't want "failure" to bubble up, so we return true to say we've// handled it.return true;}.... }

評論模板

“審閱”模板是一個簡單的表。 它以表格形式包裝,但僅用于頁面底部的導航按鈕。

<t:if test="modeReview"><h1>Review</h1><strong>Warning: no attempt is made to block XSS</strong><form t:type="form" t:id="reviewForm"><t:errors/><t:if test="course"><div t:type="if" t:test="deleteMessage" class="error">${deleteMessage}</div><table><tr><th>Uuid:</th><td>${course.uuid}</td></tr><tr><th>Code:</th><td>${course.code}</td></tr><tr><th>Name:</th><td>${course.name}</td></tr><tr><th>Summary:</th><td>${course.summary}</td></tr><tr><th>Description:</th><td>${course.description}</td></tr></table><div class="buttons"><t:submit t:event="toIndex" t:context="course.uuid" value="List"/><t:submit t:event="toUpdate" t:context="course.uuid" value="Update"/><t:submit t:event="delete" t:context="course.uuid" t:mixins="Confirm" t:message="Delete ${course.name}?" value="Delete"/></div></t:if><t:if negate="true" test="course">Course ${courseUuid} does not exist.<br/><br/></t:if></form></t:if>

回顧java

審閱表單所需的Java很簡單-我們只需要加載數據即可。 我希望setupRender()足夠,但實際上我需要onPrepareFromReviewForm()方法。

public class Editor {public enum Mode {CREATE, REVIEW, UPDATE;}// Parameters@ActivationRequestParameter@Propertyprivate Mode mode;@ActivationRequestParameter@Propertyprivate String courseUuid;// Screen fields@Propertyprivate Course course;// Generally useful bits and pieces@Injectprivate CourseFinderService courseFinderService;@Componentprivate CustomForm reviewForm;@Injectprivate ComponentResources componentResources;@InjectPageprivate com.invariantproperties.sandbox.student.maintenance.web.pages.course.Index indexPage;// The codepublic void setup(Mode mode, String courseUuid) {this.mode = mode;this.courseUuid = courseUuid;}// setupRender() is called by Tapestry right before it starts rendering the// component.void setupRender() {if (mode == Mode.REVIEW) {if (courseUuid == null) {course = null;// Handle null course in the template.} else {if (course == null) {try {course = courseFinderService.findCourseByUuid(courseUuid);} catch (ObjectNotFoundException e) {// Handle null course in the template.}}}}}// /// REVIEW// /void onPrepareFromReviewForm() {try {course = courseFinderService.findCourseByUuid(courseUuid);} catch (ObjectNotFoundException e) {// Handle null course in the template.}}// /// PAGE NAVIGATION// /// Handle event "toUpdate"boolean onToUpdate(String courseUuid) {mode = Mode.UPDATE;return false;}// Handle event "toIndex"Object onToIndex() {return indexPage;}.... }

UPDATE模板

最后,“更新”模板看起來類似于“創建”模板。

<t:if test="modeUpdate"><h1>Update</h1><strong>Warning: no attempt is made to block XSS</strong><form t:type="form" t:id="updateForm"><t:errors/><t:if test="course"><!-- If optimistic locking is not needed then comment out this next line. It works because Hidden fields are part of the submit. --><!-- <t:hidden value="course.version"/> --><table><tr><th><t:label for="updCode"/>:</th><td><input t:type="TextField" t:id="updCode" value="course.code" t:disabled="true" size="12"/></td><td>(read-only)</td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="updName"/></td></tr><tr><th><t:label for="updName"/>:</th><td><input t:type="TextField" t:id="updName" value="course.name" t:validate="required, maxlength=80" size="45"/></td><td>(required)</td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="updSummary"/></td></tr><tr><th><t:label for="updSummary"/>:</th><td><input cols="50" rows="4" t:type="TextArea" t:id="updSummary" value="course.summary" t:validate="maxlength=400"/></td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="updSummary"/></td></tr><tr><th><t:label for="updDescription"/>:</th><td><input cols="50" rows="12" t:type="TextArea" t:id="updDescription" value="course.description" t:validate="maxlength=50"/></td></tr><tr class="err"><th></th><td colspan="2"><t:CustomError for="updDescription"/></td></tr></table><div class="buttons"><t:submit t:event="toIndex" t:context="course.uuid" value="List"/><t:submit t:event="cancelUpdate" t:context="course.uuid" value="Cancel"/><input t:type="submit" value="Save"/></div></t:if><t:if negate="true" test="course">Course ${courseUuid} does not exist.<br/><br/></t:if></form> </t:if>

更新java

同樣,“更新” Java代碼看起來很像“創建” Java代碼。 最大的區別是,我們必須能夠處理在嘗試更新數據庫之前已刪除課程的比賽條件。

@Events({ Editor.TO_UPDATE, Editor.CANCEL_UPDATE,Editor.SUCCESSFUL_UPDATE, Editor.FAILED_UPDATE }) public class Editor {public static final String TO_UPDATE = "toUpdate";public static final String CANCEL_UPDATE = "cancelUpdate";public static final String SUCCESSFUL_UPDATE = "successfulUpdate";public static final String FAILED_UPDATE = "failedUpdate";public enum Mode {CREATE, REVIEW, UPDATE;}// Parameters@ActivationRequestParameter@Propertyprivate Mode mode;@ActivationRequestParameter@Propertyprivate String courseUuid;// Screen fields@Propertyprivate Course course;@Property@Persist(PersistenceConstants.FLASH)private String deleteMessage;// Work fields// This carries version through the redirect that follows a server-side// validation failure.@Persist(PersistenceConstants.FLASH)private Integer versionFlash;// Generally useful bits and pieces@Injectprivate CourseFinderService courseFinderService;@Injectprivate CourseManagerService courseManagerService;@Componentprivate CustomForm updateForm;@Injectprivate ComponentResources componentResources;@InjectPageprivate com.invariantproperties.sandbox.student.maintenance.web.pages.course.Index indexPage;// The codepublic void setup(Mode mode, String courseUuid) {this.mode = mode;this.courseUuid = courseUuid;}// setupRender() is called by Tapestry right before it starts rendering the// component.void setupRender() {if (mode == Mode.REVIEW) {if (courseUuid == null) {course = null;// Handle null course in the template.} else {if (course == null) {try {course = courseFinderService.findCourseByUuid(courseUuid);} catch (ObjectNotFoundException e) {// Handle null course in the template.}}}}}// /// UPDATE// /// Handle event "cancelUpdate"Object onCancelUpdate(String courseUuid) {return indexPage;}// Component "updateForm" bubbles up the PREPARE_FOR_RENDER event during// form rendervoid onPrepareForRenderFromUpdateForm() {try {course = courseFinderService.findCourseByUuid(courseUuid);} catch (ObjectNotFoundException e) {// Handle null course in the template.}// If the form has errors then we're redisplaying after a redirect.// Form will restore your input values but it's up to us to restore// Hidden values.if (updateForm.getHasErrors()) {if (course != null) {course.setVersion(versionFlash);}}}// Component "updateForm" bubbles up the PREPARE_FOR_SUBMIT event during for// submissionvoid onPrepareForSubmitFromUpdateForm() {// Get objects for the form fields to overlay.try {course = courseFinderService.findCourseByUuid(courseUuid);} catch (ObjectNotFoundException e) {course = new Course();updateForm.recordError("Course has been deleted by another process.");}}// Component "updateForm" bubbles up the VALIDATE event when it is submittedvoid onValidateFromUpdateForm() {if (updateForm.getHasErrors()) {// We get here only if a server-side validator detected an error.return;}try {courseManagerService.updateCourse(course, course.getName(), course.getSummary(), course.getDescription(), 1);} catch (RestClientFailureException e) {updateForm.recordError("Internal error on server.");updateForm.recordError(e.getMessage());} catch (Exception e) {// Display the cause. In a real system we would try harder to get a// user-friendly message.updateForm.recordError(ExceptionUtil.getRootCauseMessage(e));}}// Component "updateForm" bubbles up SUCCESS or FAILURE when it is// submitted, depending on whether VALIDATE// records an errorboolean onSuccessFromUpdateForm() {// We want to tell our containing page explicitly what course we've// updated, so we trigger new event// "successfulUpdate" with a parameter. It will bubble up because we// don't have a handler method for it.componentResources.triggerEvent(SUCCESSFUL_UPDATE, new Object[] { courseUuid }, null);// We don't want "success" to bubble up, so we return true to say we've// handled it.mode = Mode.REVIEW;return true;}boolean onFailureFromUpdateForm() {versionFlash = course.getVersion();// Rather than letting "failure" bubble up which doesn't say what you// were trying to do, we trigger new event// "failedUpdate". It will bubble up because we don't have a handler// method for it.componentResources.triggerEvent(FAILED_UPDATE, new Object[] { courseUuid }, null);// We don't want "failure" to bubble up, so we return true to say we've// handled it.return true;} }

刪除模板和Java

編輯器沒有顯式的“刪除”模式,但確實支持刪除審閱和更新頁面上的當前對象。

// /// DELETE// /// Handle event "delete"Object onDelete(String courseUuid) {this.courseUuid = courseUuid;int courseVersion = 0;try {courseManagerService.deleteCourse(courseUuid, courseVersion);} catch (ObjectNotFoundException e) {// the object's already deleted} catch (RestClientFailureException e) {createForm.recordError("Internal error on server.");createForm.recordError(e.getMessage());// Display the cause. In a real system we would try harder to get a// user-friendly message.deleteMessage = ExceptionUtil.getRootCauseMessage(e);// Trigger new event "failedDelete" which will bubble up.componentResources.triggerEvent(FAILED_DELETE, new Object[] { courseUuid }, null);// We don't want "delete" to bubble up, so we return true to say// we've handled it.return true;} catch (Exception e) {// Display the cause. In a real system we would try harder to get a// user-friendly message.deleteMessage = ExceptionUtil.getRootCauseMessage(e);// Trigger new event "failedDelete" which will bubble up.componentResources.triggerEvent(FAILED_DELETE, new Object[] { courseUuid }, null);// We don't want "delete" to bubble up, so we return true to say// we've handled it.return true;}// Trigger new event "successfulDelete" which will bubble up.componentResources.triggerEvent(SUCCESFUL_DELETE, new Object[] { courseUuid }, null);// We don't want "delete" to bubble up, so we return true to say we've// handled it.return indexPage;}

下一步

顯而易見的下一步是改進錯誤消息,增加對分頁,支持以及一對多和多對多關系的支持。 所有這些都需要修改REST負載。 我在管道中還有一些其他項目,例如ExceptionService,更不用說安全問題了。

源代碼

  • 可從http://code.google.com/p/invariant-properties-blog/source/browse/student獲取源代碼。

參考: 項目學生: Invariant Properties博客上來自JCG合作伙伴 Bear Giles的Maintenance Webapp(可編輯) 。

翻譯自: https://www.javacodegeeks.com/2014/02/project-student-maintenance-webapp-editable.html

webapp文本編輯器

總結

以上是生活随笔為你收集整理的webapp文本编辑器_Project Student:维护Webapp(可编辑)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久久爽爽爽 | 欧美成人精品欧美一级乱 | 日韩高清在线一区二区三区 | 国产精品理论片在线观看 | av片在线看| 国产夫妻性生活自拍 | 成人在线视频免费观看 | 亚洲爱爱视频 | 日韩欧美在线高清 | 色婷婷综合成人av | 国产精品专区在线观看 | 日韩av不卡在线观看 | 日韩一级片大全 | 久久免费看视频 | 日韩天堂在线观看 | 久草爱视频 | 在线观看www视频 | 精品电影一区 | 热精品 | 久久有精品 | 国产精品国产精品 | 日韩精品视频免费专区在线播放 | 在线观看精品一区 | 五月在线视频 | 亚洲影院色 | 日韩深夜在线观看 | 在线观看爱爱视频 | 91亚瑟视频 | 91桃色免费视频 | 人人添人人| 久久国产露脸精品国产 | 日日天天 | 亚州av成人 | 亚洲精品国产欧美在线观看 | av免费看看| 91精品对白一区国产伦 | 一区二区三区免费在线观看视频 | 久久精品久久精品久久精品 | 黄色av影视| 狠狠狠色丁香婷婷综合激情 | 96视频免费在线观看 | 99re久久资源最新地址 | 九九视频免费在线观看 | 日本夜夜草视频网站 | 国产福利在线 | 亚洲成av人片在线观看无 | 欧美一级片在线播放 | 婷婷色五| 亚洲国产高清在线 | 天天艹天天操 | 91在线视频免费91 | 男女精品久久 | 国产免费观看久久黄 | 日韩精品一区二区三区高清免费 | 有码中文字幕 | 天天色天天草天天射 | 在线免费高清视频 | 精品在线观看国产 | 六月婷婷久香在线视频 | 激情视频在线高清看 | 久草在线综合 | 四虎影视欧美 | 国产成人精品不卡 | 成人蜜桃| 久久免费高清视频 | 国产精品美女久久久免费 | 国产福利一区二区在线 | 国产伦理精品一区二区 | 91久久在线观看 | 亚洲经典在线 | 久久成人精品视频 | 精品a在线 | 日韩激情网 | 欧美精品二区 | 国产高清免费在线观看 | 国产欧美精品一区二区三区四区 | 草樱av| 久久精品视频网站 | 九九亚洲视频 | 中文字幕在线观看日本 | 久久久久亚洲精品成人网小说 | 日韩精品久久久免费观看夜色 | 少妇精品久久久一区二区免费 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 黄色亚洲片 | 在线观看播放av | 香蕉久久久久 | 天海翼一区二区三区免费 | 久久久亚洲国产精品麻豆综合天堂 | 欧美日韩一区二区三区在线观看视频 | 国产亚洲欧美精品久久久久久 | 久久久久久蜜桃一区二区 | 99精品视频在线观看免费 | 国产精品久久久久永久免费观看 | 超碰日韩| 在线性视频日韩欧美 | 九九热中文字幕 | 亚洲一级片免费观看 | 久久久久久综合网天天 | 国产精品a久久 | 色婷婷综合久久久久中文字幕1 | 中文字幕久久亚洲 | 亚洲欧美日韩在线一区二区 | 涩涩网站在线播放 | 亚洲男女精品 | 国产精品久久久久久久久久不蜜月 | 日韩在线电影一区二区 | 精品在线观看一区二区 | 中文字幕首页 | 日本在线成人 | 国产精品24小时在线观看 | 国产精品久久99精品毛片三a | 香蕉影视app| 国产你懂的在线 | 亚洲 欧美变态 另类 综合 | 免费看网站在线 | 欧美午夜精品久久久久 | 日韩理论片在线 | 国产视频首页 | 日韩在线观看不卡 | 亚洲天堂精品视频在线观看 | 亚洲国产高清在线观看视频 | 欧美日韩在线免费视频 | 日韩免| 成人91免费视频 | www.久久婷婷 | 久久艹中文字幕 | 黄色午夜 | 国产精品久久网站 | 成人免费在线网 | 久久久鲁| 日韩在线 一区二区 | 天天操狠狠操夜夜操 | 国产精品18久久久久久久 | 成人在线中文字幕 | 国产福利av | 亚洲精品影院在线观看 | 日韩免费三级 | 97视频在线观看播放 | 韩国av免费在线 | 在线日韩一区 | www黄色大片| 成人免费精品 | 亚洲精品久久久久中文字幕二区 | 免费在线中文字幕 | 免费av的网站 | www.色五月.com| 日本少妇视频 | av日韩国产| 久久影院精品 | 在线观看91久久久久久 | 一区二区三区免费在线观看视频 | www.亚洲视频 | 日韩在线视频免费播放 | 免费观看一级成人毛片 | 久久久影院官网 | 九色91在线| 日本91在线 | 日日干精品 | 激情深爱 | 国产精品无av码在线观看 | 欧美黄色特级片 | 亚洲黄色在线免费观看 | 青青草国产在线 | 欧美少妇的秘密 | 午夜视频在线观看一区 | 亚洲成a人片77777潘金莲 | 九九精品在线观看 | .国产精品成人自产拍在线观看6 | 国产黄色精品视频 | 91女神的呻吟细腰翘臀美女 | 欧美日韩性 | 91片黄在线观看 | 国产麻豆精品95视频 | 麻豆影视网 | 在线亚洲成人 | 国产精品12 | 五月天丁香综合 | 亚洲午夜小视频 | 狠狠躁18三区二区一区ai明星 | 亚洲国产69 | 久久久久综合视频 | 免费视频一区二区 | 在线日韩精品视频 | 欧美一级淫片videoshd | 免费av视屏 | 日韩在线免费不卡 | 国产流白浆高潮在线观看 | 久久黄色小说 | 视频国产在线 | 最新av网址在线观看 | 狠狠狠狠狠狠狠 | 日韩字幕在线观看 | 久草视频免费 | 国产精品高潮呻吟久久av无 | www.xxxx变态.com| 国产人成免费视频 | 五月天综合激情网 | 久久久久久久久久电影 | 在线色资源 | 国产精品成人自产拍在线观看 | 天天操天天干天天爱 | 欧美在线视频一区二区三区 | 亚洲天堂自拍视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 91av精品| 国产成人一区二区三区在线观看 | 欧美韩日在线 | 五月天电影免费在线观看一区 | 亚洲精品字幕在线观看 | 蜜臀久久99精品久久久久久网站 | 久久免费一级片 | 久久久精品一区二区 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 久久夜夜爽 | 最新真实国产在线视频 | 97超碰在线免费 | 国产精品 国产精品 | 91在线播放综合 | 97超碰资源 | 亚洲精品影视在线观看 | 在线免费黄色 | 婷婷伊人综合 | 中文字幕一区二区三区视频 | 五月婷婷在线视频 | 中文字幕国产一区二区 | 三级视频片 | 亚洲激情网站免费观看 | 在线观看岛国 | 亚洲丁香久久久 | 欧美在线久久 | 91av电影 | 欧美成年网站 | 亚洲视频在线免费观看 | 国产精选在线 | 在线a人v观看视频 | 久久99国产精品久久99 | 日韩免费网站 | 欧美性天天 | 国产成人av在线影院 | 激情五月在线观看 | 欧美激情在线看 | 免费看国产一级片 | 操碰av| www.夜夜| 一区二区三区在线观看免费视频 | 色婷婷久久久 | 日韩在线观 | 日韩av在线一区二区 | 欧美巨乳波霸 | 国产福利免费看 | 欧美日韩免费一区 | 欧美日本三级 | 九九精品毛片 | 日本中文在线观看 | 久久精品99国产 | 在线观看视频在线观看 | 久久久久久久久久久免费 | 精品在线一区二区三区 | 黄色午夜网站 | 日本在线成人 | 人人干狠狠干 | 中文字幕韩在线第一页 | 91成人午夜| 中文字幕av在线不卡 | 成人免费视频视频在线观看 免费 | 国产 一区二区三区 在线 | 91精品啪在线观看国产线免费 | 人操人| 成人黄大片视频在线观看 | 99视频导航 | 国产一级片久久 | 亚洲国产综合在线 | 欧美日韩亚洲一 | 麻豆精品传媒视频 | 天天拍天天草 | 精品视频www | 国产一级片直播 | 国产精品久久久电影 | www.超碰 | 久久在线免费 | 一区二区视频在线观看免费 | 久久久久亚洲精品成人网小说 | 久久不射电影院 | 国产亚洲va综合人人澡精品 | 韩国av永久免费 | 久草视频在线观 | 婷婷色综合色 | 久爱综合 | 日韩免费不卡视频 | 免费亚洲视频在线观看 | 最近日本韩国中文字幕 | 亚洲资源在线网 | 国产一区欧美二区 | 久久人人爽人人爽人人片 | 亚洲精品免费在线播放 | 国产 日韩 欧美 自拍 | 午夜国产一区二区 | 久久电影网站中文字幕 | 日韩在线播放欧美字幕 | 久久国产精品系列 | 99草视频在线观看 | 成人a免费视频 | 久香蕉 | 久久女同性恋中文字幕 | 欧美电影黄色 | 国产一线天在线观看 | 国产成人亚洲精品自产在线 | 亚洲人人射| 国产黄色av影视 | 日韩资源在线播放 | 久久激情五月丁香伊人 | 久久久久久久久久影院 | adc在线观看 | 91精品国产99久久久久久红楼 | 成人免费看片网址 | aaa黄色毛片 | 日韩xxxxxxxxx| 日日日天天天 | 97视频免费在线 | www.亚洲| 日本色小说视频 | 四虎4hu永久免费 | 黄色成人毛片 | 欧美日韩免费在线观看视频 | 国产精品色在线 | 深爱综合网 | av免费观看高清 | 日p视频| 免费观看完整版无人区 | a成人v在线| 高清一区二区三区av | 欧美日韩国产一区二区在线观看 | 91精品国产99久久久久久久 | 国产第一二区 | 日日夜夜91 | 在线观看免费版高清版 | 国产黄色大片 | 国产高清免费在线播放 | 日韩二区在线观看 | 精品视频久久久久久 | 狠狠色综合网站久久久久久久 | 国产免费又爽又刺激在线观看 | 精品国产乱码久久 | 国产日本在线 | 久久久久久久久艹 | 午夜黄色一级片 | 国产婷婷视频在线 | 天天爽天天摸 | 婷婷五情天综123 | 狠狠色狠狠色合久久伊人 | 在线只有精品 | 在线亚洲午夜片av大片 | 久久综合之合合综合久久 | av在线播放亚洲 | 99精品观看 | 一区二区三区在线观看中文字幕 | 国语久久 | 丝袜美腿在线 | 中文乱码视频在线观看 | 欧美国产三区 | 91爱爱网址| 四虎国产精品永久在线国在线 | 99国产在线视频 | 91精品无人成人www | 一本一本久久a久久精品综合妖精 | 中文在线资源 | 欧美日韩高清不卡 | 五月婷婷在线观看视频 | 日韩国产精品久久 | 婷婷激情在线观看 | 国产黄色精品视频 | 国产精品久久久久久久久久 | 在线看的av网站 | 最近中文字幕久久 | 一区二区不卡视频在线观看 | www免费在线观看 | 九九色在线观看 | 97操碰| 日韩精品久久久久久久电影竹菊 | 亚洲综合视频在线播放 | 成人久久久电影 | 成人毛片网 | 国产精品99免费看 | 青草视频网| 一区二区成人国产精品 | 色天天综合久久久久综合片 | 国产高清视频在线观看 | 天天插伊人 | 天天操婷婷 | 免费日韩 精品中文字幕视频在线 | 免费能看的黄色片 | 久久爱992xxoo | 欧美日韩一区二区三区视频 | 日日干天天插 | 精品福利在线观看 | 欧美美女一级片 | 久久久男人的天堂 | 国产精品99久久久久的智能播放 | 久久国产精品网站 | 国产精品一区二区麻豆 | 久久精品99国产精品日本 | 一级免费片 | aa一级片 | 永久免费毛片在线观看 | 久久久www成人免费毛片麻豆 | 国产色黄网站 | 久久天天躁夜夜躁狠狠躁2022 | 最新国产精品亚洲 | 天天射天天色天天干 | 国产婷婷视频在线 | 欧美日韩高清一区二区 | 久久伊人国产精品 | 免费色网| 国产亚洲视频在线观看 | 久久精品一二三 | av一级片网站 | 综合网欧美 | 伊人五月综合 | 亚洲综合黄色 | 国产精品午夜免费福利视频 | 国产精品美女久久久久久久 | 特级西西444www大胆高清无视频 | 69久久夜色精品国产69 | 日韩午夜三级 | 亚洲日本va午夜在线影院 | 少妇bbw搡bbbb搡bbbb | 精品国内自产拍在线观看视频 | 99视频精品 | 国产 日韩 欧美 在线 | 99久国产 | 久久国产经典 | 亚洲天堂网在线播放 | 日韩区欠美精品av视频 | 99久久国产免费,99久久国产免费大片 | 久久久麻豆 | 亚洲精品中文字幕在线观看 | 国产只有精品 | 久久久国产在线视频 | 96久久久| 五月婷婷色丁香 | 最新成人在线 | 一区二区影视 | 亚洲精品网站 | 久久精品xxx | 美女在线观看网站 | 日韩欧美在线视频一区二区 | 一区二区三区在线观看 | 天天av综合网 | 免费观看成年人视频 | 国产精品第二十页 | 国产精品视频永久免费播放 | 一级黄色免费 | 婷婷丁香国产 | 成人精品影视 | 久久av高清| 国产精品久久久久aaaa九色 | 在线观看资源 | 久久久久亚洲精品中文字幕 | 奇米影音四色 | 久在线 | 国产 字幕 制服 中文 在线 | 久久国产色 | 亚洲人成精品久久久久 | 天天干天天操天天入 | 亚洲精品一区二区三区在线观看 | 日韩爱爱片 | av一级片在线观看 | 麻豆系列在线观看 | 999久久久精品视频 日韩高清www | 西西4444www大胆视频 | 久久视精品 | 亚洲精品视频国产 | 亚洲国产成人精品电影在线观看 | 超碰成人免费电影 | 91在线视频观看 | 国产特级毛片aaaaaa | 手机在线看片日韩 | 久久综合加勒比 | 久久影院午夜论 | 黄网站a| 国产日韩欧美在线播放 | avav99| www.夜夜夜| 91桃色在线观看视频 | 成人av一区二区在线观看 | 亚洲人毛片 | 精品国产一区二区三区久久久蜜月 | 91在线免费观看网站 | 精品久久1 | 毛片网在线播放 | 91网在线看 | 亚洲mv大片欧洲mv大片免费 | 青青河边草观看完整版高清 | 日韩在线免费播放 | 久草网在线 | 人人舔人人干 | av品善网| a天堂在线看 | 亚洲综合色av | 免费久久久 | 又长又大又黑又粗欧美 | 久久99精品国产麻豆宅宅 | 国产精品国产毛片 | 97成人精品区在线播放 | 亚洲一区免费在线 | 美女网站色在线观看 | 人人舔人人干 | 日日操操 | 日韩在线高清 | 亚洲精品国产精品久久99热 | 亚洲国产精品久久久久 | 国产亚洲精品女人久久久久久 | 久久国产精品一二三区 | 国产中文字幕在线 | 国产精品麻豆三级一区视频 | 久草影视在线观看 | 日韩特黄一级欧美毛片特黄 | 91女人18片女毛片60分钟 | 久久久久久蜜桃一区二区 | 99草在线视频 | 激情伊人五月天 | 亚洲激情六月 | 国内少妇自拍视频一区 | 天天射色综合 | 久久综合五月天 | 亚洲蜜桃在线 | 免费情缘 | 五月婷婷深开心 | 91免费高清视频 | 黄色av免费| 91系列在线观看 | 亚洲精选在线观看 | 亚洲区另类春色综合小说 | 国产精品亚洲视频 | 狠狠狠色丁香婷婷综合久久五月 | 四虎国产 | 四虎影视成人精品 | 在线视频欧美日韩 | 亚洲黄电影 | 国产日韩精品一区二区 | 99中文视频在线 | 国产一区免费 | 在线观看免费版高清版 | 国产精品久久嫩一区二区免费 | 丁香资源影视免费观看 | 久久五月婷婷综合 | 成人国产精品久久久久久亚洲 | 亚洲动漫在线观看 | 最近高清中文字幕 | 深爱激情五月网 | 日日碰狠狠添天天爽超碰97久久 | 国产精品视频地址 | 国产免费视频一区二区裸体 | 中文字幕在线观看免费高清电影 | 日本特黄特色aaa大片免费 | 9在线观看免费高清完整版在线观看明 | 日韩欧美高清在线观看 | 日本黄色免费观看 | 欧美日韩三级在线观看 | 午夜精品视频一区二区三区在线看 | 中文在线天堂资源 | 亚洲高清资源 | 综合色播 | 婷婷日| 999视频在线播放 | 中文乱码视频在线观看 | 人人舔人人插 | 91传媒免费在线观看 | 久久精品一区二区三区国产主播 | 91久久久久久国产精品 | 免费色av | 免费久久精品视频 | 欧美激情视频一区二区三区免费 | 国产原创在线 | 四虎在线永久免费观看 | 色偷偷88欧美精品久久久 | 欧美日韩久久 | 亚洲日韩中文字幕在线播放 | 九九热免费在线视频 | 亚洲精品在线播放视频 | 亚洲深爱激情 | 在线观看岛国片 | 激情网综合 | 国产精品18久久久久久久 | 456成人精品影院 | 久久视频一区二区 | avav片| 99c视频高清免费观看 | 国产久草在线观看 | 日韩在线 一区二区 | 中文av在线天堂 | 欧美亚洲国产精品久久高清浪潮 | 成人精品一区二区三区电影免费 | 粉嫩高清一区二区三区 | 91麻豆精品国产91久久久久久 | 91在线观看视频网站 | 毛片黄色一级 | 香蕉91视频 | 国产999精品久久久久久绿帽 | 国产精品婷婷 | 中文字幕xxxx | 色天天| 麻豆免费观看视频 | 香蕉视频在线观看免费 | 日日精品| 国内综合精品午夜久久资源 | 亚洲精品乱码久久久久 | 亚洲国产影院av久久久久 | 最新日韩精品 | 97超碰在| 久久久精品一区二区 | 亚洲高清在线观看视频 | 91视频 - x99av| 欧美日韩另类在线观看 | 国产99久久久国产精品免费看 | 成人免费 在线播放 | 国产99久久久精品视频 | 久久这里有精品 | 日本二区三区在线 | 久久私人影院 | 亚洲高清在线观看视频 | 91香蕉久久| 成人av免费在线 | www.天天操.com| 看毛片网站| 国产精品美女久久久免费 | 久久在线精品视频 | 国产在线一区二区三区播放 | 亚洲资源 | 综合网天天 | 国内成人精品2018免费看 | 国产免费又黄又爽 | 中文字幕av一区二区三区四区 | 久久激情五月丁香伊人 | 亚洲精品视频一二三 | 亚洲三区在线 | 精品产品国产在线不卡 | 欧美精品一区二区性色 | 国产精品爽爽久久久久久蜜臀 | 久久一区91 | 99久久精品免费看国产四区 | 色先锋资源网 | 久久亚洲私人国产精品 | 日本精品久久久久中文字幕5 | 国产一级视频在线观看 | 国产精品一区二区久久国产 | 蜜桃视频在线观看一区 | 欧美日韩精品在线播放 | 国产精品精品国产婷婷这里av | 日韩高清av| 免费在线观看亚洲视频 | 精品久久国产 | 91在线影院| 99久久综合精品五月天 | 美女网站视频免费都是黄 | 特及黄色片 | 国产精品video | 麻豆精品传媒视频 | 日韩激情av在线 | 国产区在线看 | 国产不卡视频在线 | 狠狠干狠狠操 | 午夜精品电影 | 一区二区三区av在线 | 天天综合日 | 91精品在线播放 | 日韩在线观看网址 | www久| 99国产情侣在线播放 | 四川妇女搡bbbb搡bbbb搡 | 综合五月婷婷 | 免费av观看网站 | 日韩免费看视频 | 99精品欧美一区二区三区黑人哦 | 国产精品久久久久久久久免费看 | 欧美久久久影院 | 国产精品手机在线 | 91精品国自产在线观看欧美 | 夜夜躁日日躁狠狠久久88av | 天堂va在线观看 | 亚洲v欧美v国产v在线观看 | 亚洲国产剧情 | 91精品久久久久久久91蜜桃 | 日本99久久 | 四虎影视精品永久在线观看 | 久久久久久国产精品999 | 天天干天天综合 | 午夜精品一区二区三区在线视频 | 色av网站| 五月天激情视频在线观看 | 香蕉视频在线播放 | 日本3级在线观看 | 久久伊人精品一区二区三区 | 色婷婷国产 | 久久精品国产免费 | 国内外成人在线 | 国产成人三级在线观看 | 亚洲视频在线免费看 | av在线专区 | 五月激情久久久 | 九九九九精品九九九九 | 国产精品成人一区二区三区吃奶 | av高清在线观看 | 一区二区视频播放 | 在线一区二区三区 | 一个色综合网站 | 久久国产精品免费一区二区三区 | 欧美午夜性生活 | 高清av不卡 | 国产一级免费播放 | 成人国产精品 | 亚洲一级久久 | 成人黄色电影免费观看 | 久草网站在线观看 | 欧美激情精品久久 | 欧美一区二区三区在线 | 网站在线观看你们懂的 | 亚洲精品av中文字幕在线在线 | 亚洲国产av精品毛片鲁大师 | 国产欧美综合在线观看 | 国产中文字幕在线免费观看 | 成人小视频在线免费观看 | 国产 日韩 欧美 中文 在线播放 | 久久精品草 | 免费在线观看黄 | 丁香婷婷久久 | 日日爱视频 | 在线观看免费一级片 | 日韩欧美高清在线观看 | 亚洲国产精品免费 | avhd高清在线谜片 | 99视频在线观看一区三区 | 一区二区三区精品在线视频 | 欧美一级视频一区 | 亚洲国产中文字幕 | 亚洲h在线播放在线观看h | 日韩二区在线 | 99视频99 | 国产无套一区二区三区久久 | 国产一区二区三区免费观看视频 | 国产清纯在线 | 丁香影院在线 | 少妇视频在线播放 | 男女靠逼app | 在线免费高清一区二区三区 | 色网站视频 | 国产99久久久国产精品免费二区 | 国产第一福利 | 日韩成人黄色 | 亚洲乱码国产乱码精品天美传媒 | 免费av 在线 | 精品亚洲va在线va天堂资源站 | 毛片的网址 | 五月婷婷丁香六月 | 日韩在线无 | 亚洲永久av | 九九热在线播放 | 日本中文字幕在线播放 | 人人干,人人爽 | 免费看一级黄色大全 | 久久ww| 高清一区二区三区 | 午夜精品久久久久久久久久 | 日韩免费在线视频观看 | 三级a视频 | 蜜桃传媒一区二区 | 一区二区三区免费看 | 在线看成人 | 91视频久久久久久 | 国产精品久久久久久久99 | www天天干com| 免费看黄电影 | 五月婷婷av在线 | 蜜桃av人人夜夜澡人人爽 | 国产精品久久久久免费观看 | 久久精品国产精品亚洲精品 | 久久这里只有精品1 | 丁香五月亚洲综合在线 | av在线免费播放网站 | 久久伦理视频 | 99国产精品一区二区 | 国内精品在线观看视频 | 黄色在线成人 | 午夜丁香视频在线观看 | 国产精品久久久久久久久费观看 | 99热最新地址 | av在线a| 国产一区麻豆 | 国产精品久久久久高潮 | 国产99久久久国产精品免费二区 | 成人午夜电影免费在线观看 | 丝袜美女在线观看 | 国产一区二区不卡视频 | 国产精品毛片一区二区 | 天堂va在线高清一区 | 天天射色综合 | 婷婷六月丁 | 欧美性护士| 久草国产视频 | 成人蜜桃网 | 99热这里只有精品8 久久综合毛片 | 国产精品视频资源 | 国产第一页在线播放 | 久久综合之合合综合久久 | 亚洲免费在线播放视频 | 三级黄色理论片 | 欧美日韩二区在线 | 精品久久久999 | 天天操天天干天天爱 | 四虎国产免费 | 天天综合网入口 | 亚洲欧美怡红院 | 午夜视频在线观看一区二区 | 免费av在线 | 激情综合五月婷婷 | 国产免费区 | 黄色大片日本 | 精品国产乱码久久久久久1区二区 | 国产精品亚洲片在线播放 | 国产美女免费观看 | 国产精品大片在线观看 | 成年人三级网站 | 欧美黑人xxxx猛性大交 | 日韩综合在线观看 | 综合婷婷久久 | 亚洲精品动漫久久久久 | 日韩在线精品一区 | 国产成人一区三区 | 911亚洲精品第一 | 天天想夜夜操 | 精品久久久久久久久久久久久 | 久久人人爽视频 | 亚洲国产欧美一区二区三区丁香婷 | 亚洲国产中文字幕在线观看 | 国产91av视频在线观看 | 一级欧美日韩 | 久久久久久久久影视 | 国产福利小视频在线 | 人人玩人人爽 | 婷婷久久综合九色综合 | 天天干天天操天天爱 | 中文在线免费一区三区 | 国产一级精品绿帽视频 | 国产精品五月天 | 狠狠狠色丁香综合久久天下网 | 久色小说 | 亚洲天堂网在线视频 | 91久久精品一区 | 婷婷日日| 天天摸天天弄 | 91亚洲欧美激情 | 久久99精品久久只有精品 | 日韩久久精品一区 | 亚洲精品欧美精品 | 美女久久久久久久久久久 | 国产一区二区日本 | 欧美污污网站 | 亚洲免费成人av电影 | 在线天堂中文在线资源网 | 毛片一级免费一级 | 亚洲国产偷 | 国产一级黄大片 | 日日操网 | 日韩中文字幕在线不卡 | 国产资源av | 天天操人 | 久久婷婷一区二区三区 | 国产免费观看久久 | 日韩精品一区二区三区丰满 | 免费在线国产 | 欧美日韩视频一区二区三区 | 亚洲视频观看 | 国产福利免费看 | 中文字幕免费播放 | 成人中文字幕在线观看 | 中文字幕观看av | 就要干b | 午夜黄色大片 | 中文字幕成人网 | 开心婷婷色 | 欧美日韩国产高清视频 | 欧美国产三区 | 久久天天躁夜夜躁狠狠躁2022 | 天天插伊人 | 国产精品免费久久久久久 | 草久电影| 天天综合成人网 | 欧美色精品天天在线观看视频 | 黄污视频大全 | 天海翼一区二区三区免费 | www.97视频 | 成人影片在线播放 | 美女网站黄在线观看 | 日韩av在线小说 | 综合久久网站 | 国模精品一区二区三区 | 国产精品美女免费 | av性在线| 99久久婷婷 | 天天舔天天射天天操 | 中文字幕亚洲情99在线 | 欧美二区三区91 | 香蕉视频最新网址 | 国产精品久久久久久久午夜片 | 99精品视频在线看 | 一级黄网| 亚洲精品色婷婷 | 99这里只有精品99 | 久久久毛片 | 国产视频在线看 | 在线国产能看的 | 欧美成a人片在线观看久 | 欧美日bb | 久久综合爱| 亚洲午夜精品一区二区三区电影院 | 国产黄色片久久久 | 欧美日韩国产xxx | 久久综合之合合综合久久 | 免费在线国产精品 | 久久亚洲精品国产亚洲老地址 | 日本久久久久久久久久 | 特级免费毛片 | 国产五月色婷婷六月丁香视频 | 日韩一区视频在线 | 超碰97国产精品人人cao | 亚洲精品国产麻豆 | 日韩欧美91 | 国产日韩在线视频 | 亚洲免费av在线播放 | 在线色亚洲 | 日韩高清www | 欧美爽爽爽 | 欧美日韩成人一区 | 免费看污网站 | 日日夜夜网 | 国产五月天婷婷 | 91av超碰| 97超级碰| 国产美女精品久久久 | 欧美激情亚洲综合 | 黄色在线小网站 | 亚洲人成在线电影 | 激情五月开心 | 日韩在线视频一区 | 久久久精品一区二区 | 国产99久久精品一区二区300 | 激情视频免费在线 | 丝袜一区在线 | 99精品视频在线观看 | 中文字幕在线观看不卡 | 亚洲免费av一区二区 | 久久久久久久毛片 | 超碰97在线资源 | 日韩av有码在线 | 免费观看91视频 | 精品国产乱码久久久久久1区2匹 | 国产欧美精品一区二区三区四区 | 91丨九色丨国产丨porny精品 | 99久久精品免费看国产一区二区三区 | 久久兔费看a级 | 国产大片免费久久 | 久草在线观 | 欧美不卡视频在线 | 午夜电影一区 | 天天爱综合 | 国产精品美女www爽爽爽视频 | 日本中文不卡 | 免费观看的av网站 | 97在线精品国自产拍中文 | 免费av电影网站 | 久久免费视频网 | 国产黄大片在线观看 | 精品一区二区在线免费观看 | 五月婷婷综合在线视频 | 久久综合免费视频 | 欧洲激情在线 | 日韩黄色av网站 | 国产99久久九九精品免费 | 国产夫妻av在线 | 久久精品亚洲 | 色妞久久福利网 | 狠狠色噜噜狠狠狠狠2022 | 午夜视频在线观看一区二区三区 | 久久成人18免费网站 | 免费高清在线观看电视网站 | 天天弄天天干 | 亚洲精品午夜国产va久久成人 | 中文国产成人精品久久一 | 正在播放国产一区二区 | 亚洲黄色精品 | 日韩中出在线 | 五月天最新网址 | 免费在线a | www色网站 | 中文字幕免费观看全部电影 | 精品欧美一区二区在线观看 | 欧美国产大片 |