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

分析JSP后臺文件管理源代碼

開發 后端
本文將分析JSP后臺文件管理源代碼,一直關注基于Web的大文件傳輸的實現,嘗試用VB寫AcitveX控件在客戶端執行FTP登錄及上傳下載。不過后來還是發現用JSP的方法比較好一些。

在網上找到個好東東介紹實現JSP后臺文件管理的,就是Web端瀏覽器實現類似文件管理的功能(多了上傳文件)。有源代碼提供,就是寫得亂了點。經整理改進,增加了文件下載功能,以及對大文件上傳的支持(用commons.fileupload包,解決了smartupload包傳輸大文件就報錯的Bug)。不過還沒改下載(有時間改過來)。現在與大家分享一下,歡迎大家給出建議。

  1. <%-- 根據oddWorld 網站文件管理系統(簡體中文版)修改  
  2.   copy right by joard Ast,kliis   
  3.   admin.jsp 功能:網站文件后臺管理頁面。  
  4.   admin.jsp 特點:單頁面實現服務器后臺文件的各項管理  
  5.   轉載敬請注明出處!  
  6. --%> 
  7.   <%@ page contentType="text/html;charset=gb2312" %> 
  8. <%@ page import="java.io.*" %> 
  9. <%@ page import="org.apache.commons.fileupload.*" %> 
  10. <%@ page import="java.util.Date" %> 
  11. <%@ page import="java.util.*" %> 
  12. <%@ page import="com.jspsmart.upload.SmartUpload" %> 
  13. <%@ page import="javax.servlet.http.HttpSession" %> 
  14. <%@ page import="javax.servlet.http.HttpServletRequest" %> 
  15. <%@ page import="java.lang.reflect.*" %> 
  16.  
  17. <% //中文字符轉換%> 
  18. <%!  
  19. public static String UnicodeToChinese(String s)  
  20. {  
  21.   try{  
  22.   if(s==null || s.equals("")) return "";  
  23.   String newstring=null;  
  24.   newnewstring=new String(s.getBytes("ISO8859_1"),"gb2312");  
  25.   return newstring;  
  26.   }  
  27.   catch(UnsupportedEncodingException e)  
  28.   {  
  29.   return s;  
  30.   }  
  31. }  
  32.  
  33. public static String ChineseToUnicode(String s)  
  34. {  
  35.   try  
  36.   {  
  37.   if(s==null||s.equals("")) return "";  
  38.   String newstring=null;  
  39.   newnewstring=new String(s.getBytes("gb2312"),"ISO8859_1");  
  40.   return newstring;  
  41.   }  
  42.   catch(UnsupportedEncodingException e)  
  43.   {  
  44.   return s;  
  45.   }  
  46. }  
  47.  
  48. public String getTime(String formats)  
  49.   {    
  50.   //取得自定義格式的時間 ("yyyyMM") ("yyyy_MM_dd_HHmmssSSS") 大S為毫秒 HH為24小時制,hh為12小時制  
  51.   return new java.text.SimpleDateFormat(formats).format(java.util.Calendar.getInstance().getTime());  
  52.   }  
  53. %> 
  54.  
  55. <%  
  56. //刷新問題  
  57. response.setHeader("Pragma","No-cache");   
  58. response.setHeader("Cache-Control","no-cache");   
  59. response.setDateHeader("Expires", 0);  
  60.  
  61. //自定義登陸用密碼和用戶名  
  62.  
  63. //正確的用戶名,可以另外添加連接數據庫  
  64. String username="admin";  
  65.  
  66. //正確的密碼  
  67. String userpass="admin";  
  68.  
  69. //得到系統路徑,路徑得到后加一杠,表示文件夾下  
  70. ServletContext app=(ServletContext)pageContext.getServletContext();  
  71. String strSysPath = app.getRealPath("/");  
  72.  
  73.  
  74. //處理對象物理路徑  
  75. String strDealPath="";  
  76.  
  77. //顯示錯誤信息  
  78. String strErr="";  
  79.  
  80. //代表頁面的顯示狀態  
  81. //login 是顯示登陸頁面  
  82. //show 是正常的顯示文件信息;  
  83. //edit 是顯示編輯文件的頁面;  
  84. //editDo是編輯文件的寫入操作  
  85. //createF 是顯示創建文件夾的頁面;  
  86. //createFDo 是創建文件夾的操作;  
  87. //renameFold 是顯示更改文件夾名稱的頁面;  
  88. //renameFoldDo是更改文件夾名稱的操作;  
  89. //delFoldDo 是刪除文件夾的操作;  
  90. //renameFile 是顯示更改文件名稱的頁面;  
  91. //renameFileDo 是更改文件名稱的操作;  
  92. //delFileDo 是刪除文件的操作;  
  93. //uploadFile 是顯示上傳文件的頁面;  
  94. //uploadFileDo 是上傳文件的操作;  
  95.  
  96. //添加的功能 uploadFile是顯示下載文件的頁面  
  97. //uploadFileDo是下載文件的操作  
  98.  
  99. String strStat="login";  
  100. //用于show 狀態下顯示文件的數組  
  101.  
  102. File[] fileArr=null;  
  103. //根據傳遞的路徑參數得到要處理對象的物理路徑  
  104.  
  105. if (request.getParameter("path")==null || request.getParameter("path").equals(""))  
  106. {  
  107.   strDealPath=strSysPath;  
  108.   //如果從網頁傳來的路徑為空,則默認采用  
  109. }  
  110. else  
  111. {  
  112.   //得到路徑參數  
  113.   strDealPath=UnicodeToChinese(request.getParameter("path"));  
  114. }  
  115. //檢查session 的值是否存在,如果不存在著顯示錯誤信息  
  116. //HttpSession session = request.getSession(false);  
  117.  
  118. if (session.getValue("loginIn")==null || !session.getValue("loginIn").equals("pass"))  
  119. {   
  120.   strStat="login";  
  121.   strErr="你還沒有登陸或者登陸超時,請重新登陸!";  
  122. }  
  123.  
  124. //創建file 對象,檢查目錄是否存在  
  125. File myFile=new File(strDealPath);  
  126.  
  127. //檢驗文件夾是否存在   
  128. if(!myFile.exists())  
  129. {  
  130.   strErr="你選擇的文件夾不存在,請重新選擇!";  
  131. }  
  132. //根據參數的不同,進行對應的操作  
  133. if(request.getParameter("act")==null ||   
  134.   request.getParameter("act").equals("") ||   
  135.   request.getParameter("act").equals("login")  
  136.   )  
  137. {  
  138.   if(request.getParameter("username")!=null && request.getParameter("userpass")!=null)  
  139.   {  
  140.  
  141.   //正確的經過MD5 加密的密碼  
  142.   //String userpass="OEEO99107DC8C1EE2E06666B965601EF";  
  143.  
  144.   if( request.getParameter("username").equals(username)   
  145.   && (request.getParameter("userpass")).equals(userpass)  
  146.   )  
  147.   {  
  148.   session.putValue("loginIn","pass");  
  149.   response.sendRedirect(request.getRequestURI()+"?act=show");  
  150.   }  
  151.   }   
  152.   else  
  153.   {  
  154.   strStat="login";  
  155.   strErr="你還沒有登陸或者登陸超時,請重新登陸!";  
  156.   }  
  157. }  
  158. else if(request.getParameter("act").equals("show"))  
  159. {  
  160.   //缺省,頁面正常顯示文件的信息 statStat="show" 
  161.   strStat="show";  
  162.  
  163.   //創建文件列表數組  
  164.   fileArr=myFile.listFiles();  
  165.  
  166. }  
  167. else if(request.getParameter("act").equals("edit"))  
  168. {  
  169.   //編輯文件內容的頁面  
  170.   //根據是否有request.getParameter("file")  
  171.   //以及相應文件是否存在,如果有,則進行編輯操作,如果沒有,則顯示錯誤提示信息  
  172.      
  173.   if (!(request.getParameter("file")==null || request.getParameter("file").equals("")))  
  174.   {  
  175.  
  176.   File fileEditnew File(UnicodeToChinese(request.getParameter("path"))  
  177.   +UnicodeToChinese(request.getParameter("file")));  
  178.      
  179.   if(fileEdit.exists())  
  180.   //文件編輯操作,實際就是更改頁面的顯示,用一個textarea 顯示文件的信息,來做編輯  
  181.   strStat="edit";  
  182.   else   
  183.   //顯示錯誤信息  
  184.   strErr="你選擇的文件不存在,請重新選擇!";  
  185.      
  186.   }else  
  187.   {  
  188.   strErr="你沒有選擇要編輯的文件,請重新選擇!";  
  189.   }  
  190. }else if(request.getParameter("act").equals("editDo"))  
  191. {  
  192.   //把修改的內容寫入文件,并且返回修改頁面  
  193.   if (!(request.getParameter("file")==null || request.getParameter("file").equals("")))  
  194.   {   
  195.   File fileEditnew File(UnicodeToChinese(request.getParameter("path"))  
  196.   +UnicodeToChinese(request.getParameter("file")));  
  197.  
  198.   if(fileEdit.exists())  
  199.   {   
  200.   //文件編輯操作,實際就是在修改文件內容以后,再于頁面上用一個textarea 顯示文件的內容,  
  201.   //繼續來做編輯或者查看修改的效果  
  202.   if(!(request.getParameter("fileData")==null))  
  203.   {   
  204.   try{  
  205.   PrintWriter pwEdit =null;  
  206.      
  207.   pwEdit=new PrintWriter(new FileOutputStream(UnicodeToChinese(request.getParameter("path"))  
  208.   +UnicodeToChinese(request.getParameter("file"))));  
  209.      
  210.   pwEdit.println(UnicodeToChinese(request.getParameter("fileData")));  
  211.   pwEdit.close();  
  212.      
  213.   response.sendRedirect(request.getRequestURI()+"?path="+   
  214.   UnicodeToChinese(request.getParameter("path")) +"&file="+UnicodeToChinese(request.getParameter("file")) +"&act=edit");   
  215.   return;  
  216.   }catch(Exception e)  
  217.   {  
  218.   strErr="文件寫入錯誤,請重新選擇!";  
  219.   }  
  220.   }   
  221.   else  
  222.   {  
  223.   strErr="缺少修改文件內容的參數,請重新選擇!";  
  224.   }  
  225.   }else   
  226.   //顯示錯誤信息  
  227.   strErr="你選擇的文件不存在,請重新選擇!";  
  228.   }else  
  229.   {  
  230.   strErr="你沒有選擇要編輯的文件,請重新選擇!";  
  231.   }  
  232. }else if(request.getParameter("act").equals("createF"))  
  233. {  
  234.   //創建新的文件夾的頁面顯示  
  235.   strStat="createF";  
  236. }else if(request.getParameter("act").equals("createFDo"))  
  237. {  
  238.   //創建新的文件夾  
  239.   String strFoldName=strDealPath+UnicodeToChinese(request.getParameter("foldName")).trim()+"\\";  
  240.   //out.println(strFoldName);  
  241.   //out.close();  
  242.   File fileCreateF=new File(strFoldName);  
  243.  
  244.   if(!fileCreateF.exists())  
  245.   {  
  246.   try{  
  247.   fileCreateF.mkdir();  
  248.   response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");   
  249.   return;  
  250.   }catch(Exception e)  
  251.   {   
  252.   strErr="創建新文件夾失敗!";  
  253.   }  
  254.   }  
  255.   else  
  256.   {   
  257.   strErr="指定的文件夾名稱和現有的文件夾名稱重復,請重新指定一個新的文件夾名稱!";  
  258.   }  
  259. }  
  260.  
  261. else if(request.getParameter("act").equals("delFoldDo"))  
  262. {  
  263.   //刪除操作  
  264.   try{  
  265.   String strFileDelF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\\";  
  266.   File fileDelF=new File(strFileDelF);  
  267.  
  268.   if(fileDelF.exists())  
  269.   {  
  270.   File[] fileArrCheck=fileDelF.listFiles();  
  271.   if(!(fileArrCheck.length>0))  
  272.   {  
  273.   fileDelF.delete();  
  274.   response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");   
  275.   return;  
  276.   }else  
  277.   {  
  278.   strErr="文件夾下面還包含著文件,請把文件都刪除,再刪除文件夾";  
  279.   }  
  280.   }else  
  281.   {  
  282.   strErr="要刪除的文件夾不存在,請重新選擇";  
  283.   }  
  284.   }catch(Exception e)  
  285.   {  
  286.   strErr="文件夾刪除操作錯誤!";  
  287.   }  
  288. }  
  289.  
  290.  
  291. else if(request.getParameter("act").equals("renameFold"))  
  292. {  
  293.   strStat="renameFold";  
  294. }  
  295.  
  296. else if(request.getParameter("act").equals("renameFoldDo"))  
  297. {  
  298.   //文件夾更名操作  
  299.   //根據參數判斷是否對于文件夾名稱有更改動作發生  
  300.   if(request.getParameter("changeDo").equals("true"))  
  301.   {  
  302.   //有文件名,更名發生  
  303.   try{  
  304.   String strFileRenameF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\\";  
  305.   File fileRenameF=new File(strFileRenameF);  
  306.      
  307.   //先用strFileRenameF獲得當前的文件路徑  
  308.   String strFileRenameToF=strDealPath+UnicodeToChinese(request.getParameter("newFoldName"))+"\\";  
  309.      
  310.   File fileRenameToF=new File(strFileRenameToF);  
  311.  
  312.   //判斷更名的文件夾是否存在  
  313.   if(fileRenameF.exists())  
  314.   {  
  315.   //判斷新的文件夾名稱是否與現存的文件夾重名  
  316.   if(!fileRenameToF.exists())  
  317.   {  
  318.   fileRenameF.renameTo(fileRenameToF);  
  319.   response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");   
  320.   return;  
  321.   }else  
  322.   {  
  323.   strErr="指定的文件夾名稱和現有的文件夾名稱重復,請重新指定一個文件夾名稱!";  
  324.   }  
  325.   }else  
  326.   {  
  327.   strErr="要更名的文件夾不存在,請重新選擇";  
  328.   }  
  329.  
  330.   }catch(Exception e)  
  331.   {  
  332.   strErr="文件夾更名操作錯誤!";  
  333.   }  
  334. }  
  335. }  
  336.  
  337. else if(request.getParameter("act").equals("renameFile"))  
  338. {  
  339.   strStat="renameFile";  
  340. }  
  341.  
  342. else if(request.getParameter("act").equals("renameFileDo"))  
  343. {  
  344.   //文件更名操作  
  345.   //根據參數判斷是否對于文件名稱有更改動作發生  
  346.   if(request.getParameter("changeDo").equals("true"))  
  347.   {  
  348.   //有文件名,更名發生  
  349.   try{  
  350.   String strFileRenameFi=strDealPath+UnicodeToChinese(request.getParameter("file"));  
  351.   File fileRenameFi=new File(strFileRenameFi);  
  352.      
  353.   String strFileRenameToFi=strDealPath+UnicodeToChinese(request.getParameter("newFileName"));  
  354.   File fileRenameToFi=new File(strFileRenameToFi);  
  355.      
  356.   //判斷更名的文件是否存在  
  357.   if(fileRenameFi.exists())  
  358.   {  
  359.   //判斷新的文件名稱是否與現存的文件重名  
  360.   if(!fileRenameToFi.exists())  
  361.   {  
  362.   fileRenameFi.renameTo(fileRenameToFi);  
  363.   response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");   
  364.   return;  
  365.   }else  
  366.   {  
  367.   strErr="指定的文件名稱和現有的文件名稱重復,請重新指定一個文件名稱!";  
  368.   }  
  369.   }else  
  370.   {  
  371.   strErr="要更名的文件不存在,請重新選擇";  
  372.   }  
  373.  
  374.   }catch(Exception e)  
  375.   {  
  376.   strErr="文件更名操作錯誤!";  
  377.   }   
  378.   }  
  379. }  
  380.  
  381. else if(request.getParameter("act").equals("delFileDo"))  
  382. {  
  383.   //刪除操作  
  384.   try{  
  385.   String strFileDelFi=strDealPath+UnicodeToChinese(request.getParameter("file"));  
  386.   File fileDelFi=new File(strFileDelFi);  
  387.  
  388.   if(fileDelFi.exists())  
  389.   {  
  390.   fileDelFi.delete();  
  391.   response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");   
  392.   return;  
  393.   }  
  394.   else  
  395.   {  
  396.   strErr="要刪除的文件不存在,請重新選擇";  
  397.   }  
  398.  
  399.   }catch(Exception e)  
  400.   {  
  401.   strErr="文件刪除操作錯誤!";  
  402.   }   
  403. }  
  404.  
  405. //上傳文件,用到smartupload組件  
  406. else if(request.getParameter("act").equals("uploadFile"))  
  407. {  
  408.   strStat="uploadFile";  
  409. }  
  410. else if(request.getParameter("act").equals("uploadFileDo"))  
  411. {  
  412. %> 
  413.  
  414. <%  
  415.   //上傳文件操作  
  416.   //mySmartUpload.initialize(pageContext);  
  417.   //mySmartUpload.setTotalMaxFileSize(100000000);  
  418.   //try   
  419.   //{  
  420.   // mySmartUpload.upload();  
  421.   // mySmartUpload.save(strDealPath);  
  422.  
  423.   // response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");   
  424.   // return;   
  425.   //} catch (Exception e)   
  426.   //{   
  427.   // strErr="文件上傳出錯,請檢查是否超過100M 的文件大小限制!";  
  428.   //}  
  429.      
  430.   //重新用commons.fileupload包傳輸文件  
  431.      
  432. %> 
  433.  
  434. <%  
  435.  
  436.   String type="upload";  
  437.  
  438.   String fileExt=null;  
  439.  
  440.   long fileSize=0;  
  441.  
  442.   int count=0;  
  443.  
  444.   String fileName=getTime("yyyyMMdd_HHmmssSSS");  
  445.  
  446.   String dateDir=getTime("yyyyMMdd")+"/";  
  447.  
  448.   String path=getServletContext().getRealPath("/")+type;  
  449.  
  450.   File dir=new File(path);  
  451.   if(!dir.exists())  
  452.   {   
  453.   dir.mkdir();  
  454.   }  
  455.  
  456.   pathpath=path+"/"+dateDir;    
  457.  
  458.   dir=new File(path);  
  459.      
  460.   if(!dir.exists())  
  461.   {   
  462.   dir.mkdir();  
  463.   }  
  464.   try{  
  465.  
  466.   DiskFileUpload fu=new DiskFileUpload();  
  467.  
  468.   fu.setSizeMax(1024*1024*500); // 設置允許用戶上傳文件大小,單位:字節  
  469.  
  470.   fu.setSizeThreshold(1024); // 設置最多只允許在內存中存儲的數據,單位:字節  
  471.  
  472.   fu.setRepositoryPath("C:\\");    
  473.   //設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬盤的臨時文件夾  
  474.  
  475.   List fileItems=fu.parseRequest(request); //開始讀取上傳信息  
  476.  
  477.   Iterator iter=fileItems.iterator(); // 依次處理每個上傳的文件  
  478.  
  479.   while(iter.hasNext())   
  480.   {  
  481.      
  482.   FileItem item=(FileItem) iter.next();  
  483.  
  484.   if(!item.isFormField())  
  485.   {    
  486.   //判斷是否是文件框,忽略其他不是文件域的所有表單信息  
  487.   count++;  
  488.      
  489.   fileExt=item.getName();    
  490.   //取得文件名,是客戶端的文件路徑,暈  
  491.      
  492.   fileSize=item.getSize();  
  493.      
  494.   if(fileExt==null||fileExt.equals("")||fileSize==0)   
  495.      
  496.   out.print(count+" : <hr size=1>");   
  497.   else  
  498.   {  
  499.   fileExtfileExt=fileExt.substring(fileExt.lastIndexOf("\\")+1);    
  500.   //取文件擴展名  
  501.      
  502.   File files=new File(path,fileExt);  
  503.      
  504.   item.write(files);    
  505.   //以時間命名  
  506.      
  507.   out.print(count+" : "+files.getName()+"<hr size=1>");  
  508.   response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");  
  509.   //out.print(fileExt);  
  510.      
  511.   }  
  512.   }  
  513.      
  514. }  
  515.  
  516. }catch(Exception e){  
  517.   out.print("Error!");  
  518. }  
  519.  
  520. }  
  521. else if(request.getParameter("act").equals("downloadFile"))  
  522. {  
  523.   strStat="downloadFile";  
  524.      
  525.      
  526. }  
  527. else if(request.getParameter("act").equals("downloadFileDo"))  
  528. {  
  529. %> 
對JSP后臺文件管理源代碼的分析就講到這里。

【編輯推薦】

  1. 選擇JSP網站空間的三點注意事項
  2. 簡單搭建JSP動態網站運行環境
  3. MySQL手冊中查到的JSP中文亂碼解決方法
  4. JSP中文亂碼問題的描述及解決方法
  5. 實例說明JSP打印報表的方法
責任編輯:彭凡 來源: CSDN
相關推薦

2009-07-03 14:33:47

2011-02-23 14:16:43

FileZilla

2011-02-23 14:54:58

FileZilla

2011-02-23 14:46:21

FileZilla

2011-02-23 14:39:27

FileZilla

2011-02-23 15:33:42

FileZilla

2011-02-23 14:26:28

FileZilla

2011-02-23 13:47:33

FileZilla

2011-02-23 15:21:06

FileZilla

2011-02-23 15:11:27

FileZilla

2011-02-23 15:26:01

FileZilla

2015-08-28 09:38:51

Linux源代碼分析工具

2018-05-25 14:16:55

NFS源代碼線程

2013-03-06 09:56:21

2011-08-24 15:42:38

LUA源代碼

2015-08-26 17:38:47

Linux源代碼

2021-10-01 12:17:30

Facebook開源工具Mariana Tre

2012-02-20 14:47:08

JavaPlay

2009-04-20 20:09:15

2011-08-24 16:24:54

Lua源代碼
點贊
收藏

51CTO技術棧公眾號

欧美一区二区免费在线观看| 亚洲欧美一二三| 中文字幕二区三区| 真实国产乱子伦精品一区二区三区| 5858s免费视频成人| 污污污污污污www网站免费| 涩爱av在线播放一区二区| 蜜臀久久久99精品久久久久久| 久久九九全国免费精品观看| 蜜臀av粉嫩av懂色av| 成人免费在线观看视频| 亚洲小说欧美激情另类| 日韩中文字幕一区| 亚洲精品字幕在线| 蜜桃av噜噜一区| 国语自产精品视频在免费| 欧美老女人性生活视频| 9999久久久久| 56国语精品自产拍在线观看| 青青草原成人网| 最新av在线播放| 国产婷婷色一区二区三区| 国产乱码精品一区二区三区卡| 夜夜躁日日躁狠狠久久av| 亚洲性视频h| 色婷婷综合成人| www.自拍偷拍| 美女一区二区在线观看| 欧美一区二区三区视频在线| 国产成人精品无码播放| aaa在线播放视频| 亚洲欧美日韩成人高清在线一区| 日本一区视频在线播放| 日韩一区二区三区不卡| 国产福利一区二区三区视频 | 国产精品区一区二区三含羞草| 丰满少妇xoxoxo视频| 影音先锋久久资源网| 欧美成人免费在线视频| 黄色裸体一级片| 国内成人自拍| 亚洲人高潮女人毛茸茸| 欧美精品黑人猛交高潮| 美女视频亚洲色图| 亚洲精品国产美女| 一区二区免费在线观看视频| 91综合久久爱com| 欧美一区二区三区电影| 欧美在线a视频| 91麻豆精品一二三区在线| 欧美日韩国产小视频在线观看| 麻豆传传媒久久久爱| 久久爱91午夜羞羞| 91福利区一区二区三区| 精品少妇无遮挡毛片| 三级成人在线| 色哟哟国产精品| 国产精品无码专区av在线播放| 九色porny自拍视频在线观看| 精品二区三区线观看| 久久久999视频| 天天综合av| 色婷婷综合久久久中文字幕| 国产又黄又猛视频| www成人在线视频| 欧美色涩在线第一页| 欧美成人福利在线观看| 亚洲网站免费| 日韩欧美一二三区| a级一a一级在线观看| 欧洲亚洲成人| 亚洲人成网站色ww在线| 日日碰狠狠添天天爽| 欧美jizzhd精品欧美巨大免费| 欧美www在线| 日干夜干天天干| 亚洲欧美日韩专区| 国产精品综合久久久| 99在线精品视频免费观看软件| 成人在线一区二区三区| 明星裸体视频一区二区| av午夜在线| 亚洲精品亚洲人成人网在线播放| 成人免费播放器| 欧美韩国亚洲| 日韩精品中午字幕| 国产熟妇搡bbbb搡bbbb| 91精品一区二区三区综合| 国内精品一区二区三区| 最新国产中文字幕| 丁香婷婷综合色啪| 日韩久久久久久久久久久久久| 免费网站成人| 黑人狂躁日本妞一区二区三区| 日本888xxxx| 2020最新国产精品| 亚洲天天在线日亚洲洲精| 日本黄色片免费观看| 日韩一区二区免费看| 国产日韩欧美夫妻视频在线观看| 亚洲免费国产视频| 国产精品美女一区二区三区| 国产成人在线小视频| 浪潮色综合久久天堂| 日韩欧美中文字幕公布| 久久中文字幕精品| 亚洲黄色av| 国产日韩欧美电影在线观看| 无码国产色欲xxxx视频| 中文字幕国产一区二区| 欧美,日韩,国产在线| 24小时成人在线视频| 亚洲精品国产欧美| 九九精品在线观看视频| 久久66热re国产| 免费看成人av| 激情网站在线| 欧美午夜电影在线播放| 国产乱了高清露脸对白| 欧美1区3d| 国产乱肥老妇国产一区二| 婷婷开心激情网| 一级女性全黄久久生活片免费| 国产高清视频网站| 免费毛片在线不卡| 69久久夜色精品国产7777| av中文在线观看| 亚洲天堂免费看| 久久精品影视大全| 国产精品片aa在线观看| 668精品在线视频| 狠狠躁夜夜躁av无码中文幕| 1000精品久久久久久久久| 亚洲高清在线免费观看| 亚洲精品小区久久久久久| 久久久视频免费观看| 亚洲毛片欧洲毛片国产一品色| 亚洲美女免费视频| 手机免费看av网站| 国产精品久久占久久| 国产精品嫩草影院一区二区 | 正在播放亚洲1区| jizz国产在线观看| 久久综合成人精品亚洲另类欧美 | 国产一区二区三区黄视频| 亚洲人久久久| 日本黄色成人| 久久精品小视频| 国产在成人精品线拍偷自揄拍| 国产精品国产三级国产| 亚洲美女性囗交| 亚洲理论电影网| 亚洲xxxx视频| 久草在线资源站资源站| 欧美成人一区二区| 日本网站免费观看| 亚洲欧美日韩综合在线| 国产高清亚洲一区| 久久久99精品视频| 国产精品一区二区三区美女| 亚洲91av视频| 精品欧美不卡一区二区在线观看| 色婷婷狠狠综合| 少妇视频一区二区| 国产成人一区在线| 国产亚洲欧美在线视频| 国产精品一区二区av交换| 国产精品美女在线观看| 免费在线看a| 精品久久久久久久人人人人传媒| 日本一区二区免费在线观看| ww久久中文字幕| 激情五月婷婷久久| 亚洲天堂免费| 精品不卡在线| 78精品国产综合久久香蕉| 日日骚久久av| 丰满肉肉bbwwbbww| 在线区一区二视频| 午夜少妇久久久久久久久| 99精品视频在线免费观看| 最新中文字幕免费视频| 欧美一区91| 欧美日韩综合另类| www.欧美| 51色欧美片视频在线观看| 91最新在线| 精品国产99国产精品| 国产剧情在线视频| 亚洲青青青在线视频| v天堂中文在线| 久久精品国产秦先生| 少妇人妻大乳在线视频| 日韩一区亚洲二区| 国产日韩一区二区| 国精品产品一区| 午夜精品久久久久久99热软件| 成人18在线| 亚洲成年人影院在线| 中文字幕 欧美激情| 亚洲一二三区在线观看| 国产亚洲精品精品精品| 成人av电影在线观看| 亚洲天堂国产视频| 99精品久久久| 91精品国产毛片武则天| 成人免费av| 国产尤物91| 国产精品美女久久久久人| 久久精品国产亚洲高清剧情介绍 | 欧美三级网页| 亚洲v国产v在线观看| 久久资源综合| 91影院未满十八岁禁止入内| 蜜桃视频成人m3u8| 777午夜精品福利在线观看| caoporn免费在线视频| 国产一区av在线| 天堂av网在线| 精品粉嫩超白一线天av| 一级黄色片在线看| 日本大香伊一区二区三区| 日本网站在线播放| 亚洲一区二区三区四区在线 | 国产中文在线视频| 亚洲精品国产福利| 丰满人妻一区二区三区无码av| 欧美精品tushy高清| 成人午夜精品视频| 在线亚洲一区二区| 成人a v视频| 狠狠色噜噜狠狠狠狠97| 国产午夜视频在线播放| 一区二区三区蜜桃| 久久精品www| 夜夜亚洲天天久久| 欧美成人三级在线观看| 亚洲人成网站影音先锋播放| 国产精品视频在| 国产精品丝袜一区| 中文国语毛片高清视频| 中文字幕一区二区日韩精品绯色| 国产一区二区三区四区在线| 久久久综合网站| 蜜桃久久精品成人无码av| 国产日产欧美精品一区二区三区| 国产熟妇搡bbbb搡bbbb| 久久久青草青青国产亚洲免观| 深田咏美中文字幕| 成人小视频在线观看| 四虎永久免费观看| 国产宾馆实践打屁股91| 少妇搡bbbb搡bbb搡打电话| 国产精品一区在线观看乱码| 在线成人免费av| 国产精品中文有码| 不卡的一区二区| 成人免费av网站| 日本不卡视频一区| 99re在线视频这里只有精品| 国内免费精品永久在线视频| 九九精品在线观看视频| 亚洲大片免费看| 久久99国产综合精品免费| 一本大道久久a久久综合| 超碰在线97观看| 欧美日韩高清一区二区| 国产精品久久久久久69| 欧美成人精品二区三区99精品| 刘亦菲毛片一区二区三区| 日韩黄色av网站| 久草在线青青草| 中文字幕欧美日韩| aa在线视频| 91国内免费在线视频| 性欧美freesex顶级少妇| 国产精品久久二区| 国产欧美日韩电影| 精品免费二区三区三区高中清不卡| 九九热爱视频精品视频| 亚洲一区二区免费视频软件合集| 欧美日韩ab| 情侣黄网站免费看| 极品美女销魂一区二区三区免费| 麻豆传媒在线看| 99久久99久久精品免费观看 | 亚洲春色h网| 亚洲精品电影在线一区| 狠狠色综合网| 国产精品涩涩涩视频网站| 国产乱国产乱300精品| 国产亚洲色婷婷久久99精品91| 国产欧美日韩中文久久| 劲爆欧美第一页| 在线观看成人免费视频| 性做久久久久久久| 中文字幕亚洲欧美| 国产理论在线| 成人www视频在线观看| 嫩草国产精品入口| 影音先锋男人的网站| 一区二区激情| 91大神免费观看| 久久久久久久性| 欧美日韩大片在线观看| 欧美在线制服丝袜| 日本高清视频网站| 久久精品青青大伊人av| 综合毛片免费视频| 99在线观看| 日韩啪啪电影网| 欧美性久久久久| 高清不卡一区二区| 国产激情无码一区二区三区| 色哦色哦哦色天天综合| 免费观看国产视频| 免费av在线一区| 高清亚洲高清| 欧美精品久久| 亚洲国产99| 亚洲欧美激情一区二区三区| 国产人成亚洲第一网站在线播放| 亚洲精品一区二区三区樱花 | 欧美三级日韩三级| 亚洲欧美日韩综合在线| 欧美高清在线观看| 日韩专区视频| 亚洲精品乱码视频| 日韩黄色片在线观看| 一卡二卡三卡四卡| 欧美视频在线观看免费网址| 国产综合无码一区二区色蜜蜜| 久久亚洲精品中文字幕冲田杏梨| 亚洲精品国产嫩草在线观看| 久久久久国产精品视频| 亚洲青涩在线| 永久免费未满蜜桃| 亚洲国产精品一区二区www在线| 国产深喉视频一区二区| 日韩在线观看网址| 久久亚洲精品中文字幕| 日韩欧美精品一区二区| 天堂va蜜桃一区二区三区| 偷拍女澡堂一区二区三区| 精品国产91久久久久久老师| 无码国产精品一区二区色情男同 | 在线视频播放大全| 中文字幕日韩欧美在线视频| 日本一区二区三区视频在线| 日韩亚洲视频| 久久激情五月婷婷| 极品颜值美女露脸啪啪| 欧美sm美女调教| 国产激情视频在线看| 久久精彩视频| 视频在线观看91| 中文字幕第69页| 日韩三级在线免费观看| caoporn视频在线观看| 九九久久99| 久久午夜视频| 亚洲精品国产精品乱码在线观看| 欧美精品在线一区二区三区| 国产一区久久精品| 国产精品中出一区二区三区| 国产精品久久久久久模特| 国产女主播喷水高潮网红在线| 欧美亚洲国产bt| 黄色av电影在线播放| 粉嫩高清一区二区三区精品视频| 日韩亚洲在线| 男人天堂资源网| 日韩欧美亚洲国产精品字幕久久久| xxx.xxx欧美| 欧美综合激情| 极品销魂美女一区二区三区| 亚洲国产精品午夜在线观看| 亚洲片av在线| 白嫩亚洲一区二区三区| 日韩小视频在线播放| 欧美国产日韩精品免费观看| a在线观看免费| 全球成人中文在线| 久久精品亚洲人成影院| 国产白嫩美女无套久久| 欧美午夜精品一区二区三区 | 琪琪第一精品导航| av伦理在线| 欧美mv和日韩mv的网站| 97人澡人人添人人爽欧美| 欧美日韩国产精品一卡| 国产乱色国产精品免费视频| 日韩精品手机在线| 久久精品亚洲精品| 免费一区二区三区视频导航| 国内av一区二区| 91成人免费在线视频| 久久99亚洲网美利坚合众国| 亚洲精品不卡| 91在线视频网址|