日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

杨老师教你学会使用富文本编辑器KindEditor之添加页面设计

發布時間:2024/1/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 杨老师教你学会使用富文本编辑器KindEditor之添加页面设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 2018-12-06 進行整理本篇文章,主要是解決如何引入富文本編輯器的使用
  • 2019-06-18 進行了二次完善,解決了富文本編輯器的圖片上傳和附件上傳問題

本篇文章進行二次更新操作,完善了上傳圖片功能 ,各位只需要將我下方創建的兩個servlet的拷貝到你們的servlet里去。另外在修改一下js代碼,如圖:


今日課堂無聊,簡單寫了些前臺,順便給大家說說富文本編輯器的使用教程

對于分類描述,我采用了富文本編輯器~KingEditer的插件。
什么是富文本編輯器?

1.搭建富文本編輯器

去KingEditor官網去下載KingEditor文件 kingeditor網址鏈接: http://kindeditor.net/demo.php [不過要翻墻]
或者直接CSDNhttps://download.csdn.net/download/kese7952/10838028
下載下來解壓,把文件放入java項目中

下載解壓后,如下圖:

我是在WebContent或者WebRoot下新建了一個文件夾Folder,命名為:kindEditer,將lang,plugins,themes,kindediteror-all.js,kindediteror-all-min.js拷貝到kindEditer文件夾下了。如圖:

在WebContent里新建了一個頁面,命名為header.jsp,在其中引入了部分官方提供模板代碼,(大家也可以選擇拷貝我的代碼:)

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title><link rel="stylesheet" href="${pageContext.request.contextPath}/css/main.css" /><!--想使用富文本編輯器,需要引入下面三條--><link rel="stylesheet" href="${pageContext.request.contextPath}/kindEditor/themes/default/default.css" /><script charset="utf-8" src="${pageContext.request.contextPath}/kindEditor/kindeditor-all-min.js"></script><script charset="utf-8" src="${pageContext.request.contextPath}/kindEditor/lang/zh_CN.js"></script> <!-- <script>//簡單模式初始化//簡單模式 注意:下方中的content屬性值要與textarea的name屬性值相同才可以var editor;KindEditor.ready(function(K) {editor = K.create('textarea[name="content"]', {resizeType : 1,allowPreviewEmoticons : false,allowImageUpload : false,items : ['fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline','removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist','insertunorderedlist', '|', 'emoticons', 'image', 'link']});});</script> --><script>//默認模式 注意:下方中的content屬性值要與textarea的name屬性值相同才可以var editor;KindEditor.ready(function(K) {editor = K.create('textarea[name="content"]', {allowFileManager : true,uploadJson:'${pageContext.request.contextPath}/kindeditorUploadServlet',fileManagerJson:'${pageContext.request.contextPath}/kindeditorFileManagerServlet'});K('input[name=getHtml]').click(function(e) {alert(editor.html());});K('input[name=isEmpty]').click(function(e) {alert(editor.isEmpty());});K('input[name=getText]').click(function(e) {alert(editor.text());});K('input[name=selectedHtml]').click(function(e) {alert(editor.selectedHtml());});K('input[name=setHtml]').click(function(e) {editor.html('<h3>Hello KindEditor</h3>');});K('input[name=setText]').click(function(e) {editor.text('<h3>Hello KindEditor</h3>');});K('input[name=insertHtml]').click(function(e) {editor.insertHtml('<strong>插入HTML</strong>');});K('input[name=appendHtml]').click(function(e) {editor.appendHtml('<strong>添加HTML</strong>');});K('input[name=clear]').click(function(e) {editor.html('');});});</script></head>

代碼中,我涉及到了兩種模式:(二選一)
第一種簡約模式,效果如圖:

第二種默認的富文本編輯模式,效果如圖:

這里,我選擇的是第二種模式。【即,把簡約模式進行了注釋】


以下是我的代碼示例:
步驟一:新建一個jsp頁面,起名為addCategory.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ include file="/header.jsp" %> <br/> <center><form action="${pageContext.request.contextPath}/CategoryServlet?op=addCategory" method="post" ><table><tr><td>分類名稱:</td><td><input type="text" name="name" ></td></tr><tr><td>分類描述:</td><td><textarea id="mul_input" name="description" style="width:700px;height:200px;visibility:hidden;display: block;"></textarea></tr><tr class="input_control"><td colspan="2"><input type="submit" value="添加圖書" id="btn1" ></td></tr></table></form></center>

首先我是在addCategory.jsp的開頭就引進了一個header頁面,header頁面代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title><link rel="stylesheet" href="${pageContext.request.contextPath}/kingEditer/themes/default/default.css" /><link rel="stylesheet" href="${pageContext.request.contextPath}/css/main.css" /><script charset="utf-8" src="${pageContext.request.contextPath}/kingEditer/kindeditor-all-min.js"></script><script charset="utf-8" src="${pageContext.request.contextPath}/kingEditer/lang/zh_CN.js"></script> <!-- <script>//簡單模式初始化var editor;KindEditor.ready(function(K) {editor = K.create('textarea[name="description"]', {resizeType : 1,allowPreviewEmoticons : false,allowImageUpload : false,items : ['fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline','removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist','insertunorderedlist', '|', 'emoticons', 'image', 'link']});});</script> --><script>//默認模式var editor;KindEditor.ready(function(K) {editor = K.create('textarea[name="description"]', {allowFileManager : true });K('input[name=getHtml]').click(function(e) {alert(editor.html());});K('input[name=isEmpty]').click(function(e) {alert(editor.isEmpty());});K('input[name=getText]').click(function(e) {alert(editor.text());});K('input[name=selectedHtml]').click(function(e) {alert(editor.selectedHtml());});K('input[name=setHtml]').click(function(e) {editor.html('<h3>Hello KindEditor</h3>');});K('input[name=setText]').click(function(e) {editor.text('<h3>Hello KindEditor</h3>');});K('input[name=insertHtml]').click(function(e) {editor.insertHtml('<strong>插入HTML</strong>');});K('input[name=appendHtml]').click(function(e) {editor.appendHtml('<strong>添加HTML</strong>');});K('input[name=clear]').click(function(e) {editor.html('');});});</script></head> <body><h1>歡迎來到趣讀書屋</h1><br/><br/><ul><li><a href="">添加分類</a></li><li><a href="">添加圖書</a></li><li><a href="">用戶注冊</a></li><li><a href="">用戶登錄</a></li><li><a href="">購物車</a></li><li><a href="">我的訂單</a></li></ul><br/><br/><hr/>

【2019.06】完善上傳功能實現

1. 上傳Jar包

commons-collections-3.2.1.jar
commons-fileupload-1.3.1.jar
commons-io-2.4.jar
json_simple-1.1.jar
關于如何下載jar包,可以查看https://mryang.blog.csdn.net/article/details/91410923

2. 創建兩個Servlet
2.1 第一個Servlet命名為 KindeditorFileManagerServlet
package cn.javabs.school.servlet;import org.json.simple.JSONObject;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Collections; import java.util.Comparator; import java.text.SimpleDateFormat; import java.util.*;@WebServlet("/kindeditorFileManagerServlet") public class KindeditorFileManagerServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();/*** KindEditor JSP** 本JSP程序是演示程序,建議不要直接在實際項目中使用。 如果您確定直接使用本程序,使用之前請仔細確認相關安全設置。**/// 根目錄路徑,可以指定絕對路徑,比如 /var/www/attached/String rootPath = getServletContext().getRealPath("/") + "attached/";// 根目錄URL,可以指定絕對路徑,比如 http://www.yoursite.com/attached/String rootUrl = request.getContextPath() + "/attached/";// 圖片擴展名String[] fileTypes = new String[] { "gif", "jpg", "jpeg", "png", "bmp" };String dirName = request.getParameter("dir");if (dirName != null) {if (!Arrays.<String> asList(new String[] { "image", "flash", "media", "file" }).contains(dirName)) {out.println("Invalid Directory name.");return;}rootPath += dirName + "/";rootUrl += dirName + "/";File saveDirFile = new File(rootPath);if (!saveDirFile.exists()) {saveDirFile.mkdirs();}}// 根據path參數,設置各路徑和URLString path = request.getParameter("path") != null ? request.getParameter("path") : "";String currentPath = rootPath + path;String currentUrl = rootUrl + path;String currentDirPath = path;String moveupDirPath = "";if (!"".equals(path)) {String str = currentDirPath.substring(0,currentDirPath.length() - 1);moveupDirPath = str.lastIndexOf("/") >= 0 ? str.substring(0, str.lastIndexOf("/") + 1) : "";}// 排序形式,name or size or typeString order = request.getParameter("order") != null ? request.getParameter("order").toLowerCase() : "name";// 不允許使用..移動到上一級目錄if (path.indexOf("..") >= 0) {out.println("Access is not allowed.");return;}// 最后一個字符不是/if (!"".equals(path) && !path.endsWith("/")) {out.println("Parameter is not valid.");return;}// 目錄不存在或不是目錄File currentPathFile = new File(currentPath);if (!currentPathFile.isDirectory()) {out.println("Directory does not exist.");return;}// 遍歷目錄取的文件信息List<Hashtable> fileList = new ArrayList<Hashtable>();if (currentPathFile.listFiles() != null) {for (File file : currentPathFile.listFiles()) {Hashtable<String, Object> hash = new Hashtable<String, Object>();String fileName = file.getName();if (file.isDirectory()) {hash.put("is_dir", true);hash.put("has_file", (file.listFiles() != null));hash.put("filesize", 0L);hash.put("is_photo", false);hash.put("filetype", "");} else if (file.isFile()) {String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();hash.put("is_dir", false);hash.put("has_file", false);hash.put("filesize", file.length());hash.put("is_photo", Arrays.<String> asList(fileTypes).contains(fileExt));hash.put("filetype", fileExt);}hash.put("filename", fileName);hash.put("datetime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(file.lastModified()));fileList.add(hash);}}if ("size".equals(order)) {Collections.sort(fileList, new SizeComparator());} else if ("type".equals(order)) {Collections.sort(fileList, new TypeComparator());} else {Collections.sort(fileList, new NameComparator());}JSONObject result = new JSONObject();result.put("moveup_dir_path", moveupDirPath);result.put("current_dir_path", currentDirPath);result.put("current_url", currentUrl);result.put("total_count", fileList.size());result.put("file_list", fileList);response.setContentType("application/json; charset=UTF-8");out.println(result.toJSONString());out.close();}public class NameComparator implements Comparator {public int compare(Object a, Object b) {Hashtable hashA = (Hashtable) a;Hashtable hashB = (Hashtable) b;if (((Boolean) hashA.get("is_dir"))&& !((Boolean) hashB.get("is_dir"))) {return -1;} else if (!((Boolean) hashA.get("is_dir"))&& ((Boolean) hashB.get("is_dir"))) {return 1;} else {return ((String) hashA.get("filename")).compareTo((String) hashB.get("filename"));}}}public class SizeComparator implements Comparator {public int compare(Object a, Object b) {Hashtable hashA = (Hashtable) a;Hashtable hashB = (Hashtable) b;if (((Boolean) hashA.get("is_dir"))&& !((Boolean) hashB.get("is_dir"))) {return -1;} else if (!((Boolean) hashA.get("is_dir"))&& ((Boolean) hashB.get("is_dir"))) {return 1;} else {if (((Long) hashA.get("filesize")) > ((Long) hashB.get("filesize"))) {return 1;} else if (((Long) hashA.get("filesize")) < ((Long) hashB.get("filesize"))) {return -1;} else {return 0;}}}}public class TypeComparator implements Comparator {public int compare(Object a, Object b) {Hashtable hashA = (Hashtable) a;Hashtable hashB = (Hashtable) b;if (((Boolean) hashA.get("is_dir"))&& !((Boolean) hashB.get("is_dir"))) {return -1;} else if (!((Boolean) hashA.get("is_dir"))&& ((Boolean) hashB.get("is_dir"))) {return 1;} else {return ((String) hashA.get("filetype")).compareTo((String) hashB.get("filetype"));}}} }
2.2 第二個Servlet命名為 KindeditorUploadServlet
package cn.javabs.school.servlet;import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.json.simple.JSONObject;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.*;@WebServlet("/kindeditorUploadServlet") public class KindeditorUploadServlet extends HttpServlet {public KindeditorUploadServlet() {super();}private String getError(String message) {JSONObject obj = new JSONObject();obj.put("error", 1);obj.put("message", message);return obj.toJSONString();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/*** KindEditor JSP** 本JSP程序是演示程序,建議不要直接在實際項目中使用。 如果您確定直接使用本程序,使用之前請仔細確認相關安全設置。**/request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();// 文件保存目錄路徑String savePath = getServletContext().getRealPath("/") + "attached/";System.out.println("savePath:" + savePath);// 文件保存目錄URLString saveUrl = request.getContextPath() + "/attached/";// 定義允許上傳的文件擴展名HashMap<String, String> extMap = new HashMap<String, String>();extMap.put("image", "gif,jpg,jpeg,png,bmp");extMap.put("flash", "swf,flv");extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb");extMap.put("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");// 最大文件大小long maxSize = 1000000;response.setContentType("application/json; charset=UTF-8");if (!ServletFileUpload.isMultipartContent(request)) {out.println(getError("請選擇文件。"));return;}// 檢查目錄File uploadDir = new File(savePath);if (!uploadDir.isDirectory()) {uploadDir.mkdirs(); // out.println(getError("上傳目錄不存在。"));return;}// 檢查目錄寫權限if (!uploadDir.canWrite()) {out.println(getError("上傳目錄沒有寫權限。"));return;}String dirName = request.getParameter("dir");if (dirName == null) {dirName = "image";}if (!extMap.containsKey(dirName)) {out.println(getError("目錄名不正確。"));return;}// 創建文件夾savePath += dirName + "/";saveUrl += dirName + "/";File saveDirFile = new File(savePath);if (!saveDirFile.exists()) {saveDirFile.mkdirs();}SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");String ymd = sdf.format(new Date());savePath += ymd + "/";saveUrl += ymd + "/";File dirFile = new File(savePath);if (!dirFile.exists()) {dirFile.mkdirs();}FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);upload.setHeaderEncoding("UTF-8");try {List items = upload.parseRequest(request);Iterator itr = items.iterator();while (itr.hasNext()) {FileItem item = (FileItem) itr.next();String fileName = item.getName();long fileSize = item.getSize();if (!item.isFormField()) {// 檢查文件大小if (item.getSize() > maxSize) {out.println(getError("上傳文件大小超過限制。"));return;}// 檢查擴展名String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();if (!Arrays.<String> asList(extMap.get(dirName).split(",")).contains(fileExt)) {out.println(getError("上傳文件擴展名是不允許的擴展名。\n只允許"+ extMap.get(dirName) + "格式。"));return;}SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");String newFileName = df.format(new Date()) + "_"+ new Random().nextInt(1000) + "." + fileExt;try {File uploadedFile = new File(savePath, newFileName);item.write(uploadedFile);} catch (Exception e) {out.println(getError("上傳文件失敗。"));return;}JSONObject obj = new JSONObject();obj.put("error", 0);obj.put("url", saveUrl + newFileName);out.println(obj.toJSONString());}}} catch (FileUploadException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}} }
3. 在jsp中引入以下代碼
<!-- 以下是kindEditor 需要用的靜態資源 --><link rel="stylesheet" href="${pageContext.request.contextPath}/admin/resource/kindEditor/themes/default/default.css" /><script charset="utf-8" src="${pageContext.request.contextPath}/admin/resource/kindEditor/kindeditor-all-min.js"></script><script charset="utf-8" src="${pageContext.request.contextPath}/admin/resource/kindEditor/lang/zh-CN.js"></script><script type="text/javascript">$(function () {$("#saveUpdateForm").validate({debug:false});});</script> <script>//默認模式 注意:下方中的content屬性值要與textarea的name屬性值相同才可以var editor;KindEditor.ready(function(K) {editor = K.create('textarea[name="content"]', {allowFileManager : true,uploadJson:'${pageContext.request.contextPath}/kindeditorUploadServlet',fileManagerJson:'${pageContext.request.contextPath}/kindeditorFileManagerServlet'});K('input[name=getHtml]').click(function(e) {alert(editor.html());});K('input[name=isEmpty]').click(function(e) {alert(editor.isEmpty());});K('input[name=getText]').click(function(e) {alert(editor.text());});K('input[name=selectedHtml]').click(function(e) {alert(editor.selectedHtml());});K('input[name=setHtml]').click(function(e) {editor.html('&lt;h3&gt;Hello KindEditor&lt;/h3&gt;');});K('input[name=setText]').click(function(e) {editor.text('&lt;h3&gt;Hello KindEditor&lt;/h3&gt;');});K('input[name=insertHtml]').click(function(e) {editor.insertHtml('&lt;strong&gt;插入HTML&lt;/strong&gt;');});K('input[name=appendHtml]').click(function(e) {editor.appendHtml('&lt;strong&gt;添加HTML&lt;/strong&gt;');});K('input[name=clear]').click(function(e) {editor.html('');});});</script><body><label>文章正文</label><textarea id="entityContent" name="content" style="width:800px;height:400px;visibility:hidden;" data-rule-required="true"></textarea></body>

注意:

因為我在設計分類實體的屬性時,采用了描述的單詞[description],所以我在表單中的屬性值也是description,所以在header中的content需要改成description,才會有效!!!

此時的富文本編輯器就實現了。
但是我還加入一些css樣式,在WebContent下創建一個文件夾,命名為css,并且在css文件夾中船艦了一個文件,命名為main.css
代碼如下:

@CHARSET "UTF-8";body {margin: 20 auto; font-size : 12px;text-align: center;font-size: 12px; } /* 導航欄 */ ul {list-style: none;margin-left: 280px; } /*無序列表*/ li {float: left; /* 向左懸浮起來 */height: 30px;/* 告訴為30像素 */width: 100px;/* 寬度為100像素 */color: white;/* 向左懸浮起來 */background-color: red;/* 背景顏色為紅色 */margin-left: 3px;/* 每個li向左空開3個像素 */border-radius: 15px 15px 0 0;/* 屬于css3的樣式: 加入圓角邊框的形式;上邊出現圓角弧度,下邊沒有弧度。若想都設置為帶有弧度,可以全部填寫15px */ } /* 未點擊時的超鏈接 */ li a:LINK {font-size: 14px;/* 字體大小 */line-height: 32px; /* 字體行高 */text-decoration: none; /* 去除下劃線 */color: #efefef; /* 字體顏色 */ }/* 鼠標懸浮時的超鏈接 */ li a:hover {background-color: #e151ff;color: #efefef; } /* 添加分類 */ table {margin: 20 auto;font-size: 14px;text-align: center; }/*添加分類的按鈕*/ #btn1 {width: 160px;margin: 20px auto;box-sizing: border-box;text-align: center;border-radius: 4px;border: 1px solid #c8cccf;color: #6a6f77;-web-kit-appearance: none;-moz-appearance: none;display: block;outline: 0;padding: 0 1em;text-decoration: none;height: 2.7em;width: 30%; }.form-input {-web-kit-appearance: none;-moz-appearance: none;font-size: 1.4em;height: 2.7em;border-radius: 4px;border: 1px solid #c8cccf;color: #6a6f77; }input[type="text"], #btn2 {box-sizing: border-box;text-align: center;height: 2.7em;font-size: 1.4em;border-radius: 4px;border: 1px solid #c8cccf;color: #6a6f77;-web-kit-appearance: none;-moz-appearance: none;display: block;outline: 0;padding: 0 1em;text-decoration: none;width: 100%; }input[type="text"]:focus {border: 1px solid #ff7496; }
下載代碼

https://github.com/yangsir1688/kindeditor-fileUploadDemo

作者: 楊校

出處: https://blog.csdn.net/kese7952

分享是快樂的,也見證了個人成長歷程,文章大多都是工作經驗總結以及平時學習積累,基于自身認知不足之處在所難免,也請大家指正,共同進步。

本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出, 如有問題, 可郵件(397583050@qq.com)咨詢。

總結

以上是生活随笔為你收集整理的杨老师教你学会使用富文本编辑器KindEditor之添加页面设计的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美一区二区在线播放 | 欧美一区二区三区四区五区 | 天干夜天干天天天爽视频 | 天天射天天射 | 成人在线影片 | 肥臀av| 一区=区三区乱码 | 中国女人做爰视频 | 色咪咪网站 | 日本一区二区不卡在线 | 国产xxxx在线 | 制服一区| 日韩影音| 天天躁夜夜躁狠狠是什么心态 | 四虎免费视频 | 交专区videossex另类 | 国产精品久久久久久久久动漫 | 国产一区观看 | 黄色片aa| 69亚洲精品久久久蜜桃小说 | 夜夜操夜夜干 | 雷电将军和丘丘人繁衍后代视频 | 爱蜜臀av | 久久亚洲精品视频 | 性欧美在线视频观看 | 韩国色网| 在线视频 亚洲 | 国产极品福利 | 中文字幕色片 | 亚洲av成人无码久久精品老人 | 欧美激情第1页 | 日产精品久久久一区二区 | 国产日日操 | 国产三级短视频 | 狠狠地日| 桃花久久 | 成人免费视频网址 | 欧美大奶在线 | 日本欧美韩国国产精品 | 熟女人妻在线视频 | 亚洲乱熟女一区二区三区小说 | 亚洲春色一区二区三区 | 99自拍视频 | 国产免费黄色 | 亚洲男女激情 | 乱妇乱女熟妇熟女网站 | 嫩草网站在线观看 | 婷婷爱爱 | 91国模少妇一区二区三区 | 亚洲精品国产精品国自 | 波多野结衣成人在线 | 女儿的朋友4在线观看 | 亚洲最大视频网 | 日本熟妇一区二区三区四区 | 色哟哟欧美精品 | 亚洲做受高潮无遮挡 | 99精品视频一区二区 | 日韩少妇内射免费播放18禁裸乳 | 国产日产精品一区二区三区四区 | 午夜天堂精品 | 91你懂的 | 污污网站在线看 | 亚洲天堂2024 | 久久精品一区二 | 亚洲 激情 | 私人午夜影院 | 操操色 | www.国产三级| 综合激情在线 | jk美女又爽又黄视频 | 免费精品无码AV片在线观看黄 | 欧美大色 | 丰满人妻一区二区三区53号 | 午夜精品福利影院 | 性一交一乱一伧老太 | 久热国产精品 | 国产精品久久婷婷六月丁香 | aa视频免费观看 | 日穴视频 | 91在线中文 | 欧美午夜精品久久久久久孕妇 | 久久亚洲av午夜福利精品一区 | 亚洲永久免费 | 欧美aⅴ视频 | 99自拍偷拍 | 日韩一二三四五区 | 亚洲成a人无码 | 在线看的免费网站 | 91丨九色丨蝌蚪丨对白 | 久久97| 在线观看日本一区二区 | 国产精品一区二区三区在线免费观看 | 国产精品不卡av | 成人一区二区在线观看 | 女生被草| 大牛影视剧免费播放在线 | 在线国产不卡 | 变态 另类 国产 亚洲 | 扒开女人屁股进去 |