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

在Java SE平臺上使用Headless模式

開發 后端
哪里才能用到此模式呢?想想你的應用不停的生成一張圖片,比如,當用戶每次登陸系統是都要生成一張認證圖片。當創建圖片時,你得應用既不需要顯示器也不需要鍵盤。讓我們假設一下,現在你的應用有個主架構或者專有服務器,但這個服務沒有顯示器,鍵盤或者鼠標。

這篇文章介紹怎樣在標準Java(Java SE,也稱作J2SE)平臺上用Headless模式。

Headless模式是在缺少顯示屏、鍵盤或者鼠標時的系統配置。聽起來不可思議,但事實上你可以在這中模式下完成不同的操作,甚至是用圖形數據也可以。

哪里才能用到此模式呢?想想你的應用不停的生成一張圖片,比如,當用戶每次登陸系統是都要生成一張認證圖片。當創建圖片時,你得應用既不需要顯示器也不需要鍵盤。讓我們假設一下,現在你的應用有個主架構或者專有服務器,但這個服務沒有顯示器,鍵盤或者鼠標。理想的決定是用環境的大量視覺計算能力而不是非視覺特性。在Headless模式下生成的圖片可以傳遞到Headful系統進行更深層次渲染。

在java.awt.toolkit和java.awt.graphicsenvironment 類中有許多方法,除了對字體,圖像和打印的操作外還有調用顯示器,鍵盤和鼠標的方法。但是有一些類中,比如Canvas 和 Panel,可以在headless模式下執行。在J2SE 1.4平臺之后就提供了對Headless模式的支持。

注:這篇文章重點講的是Java SE6 平臺版本的文檔。任何API增加或其他增強Java SE平臺的規范由JSR270專家組(JSR 270 Expert Group.)的審查和批準

Toolkit

java.awt.Toolkit類是Abstract Window Toolkit (AWT)的 所有實現類的抽象父類。Toolkit的子類用于把各種AWT組件綁定到特定的本地toolkit實現上去。 

如果顯示設備,鍵盤或鼠標不支持的話,很多組件都會受影響。一個合適的類構造器應當拋出一個HeadlessException異常: 

  • Button
  • Checkbox
  • Choice
  • Dialog
  • FileDialog
  • Frame
  • Label
  • List
  • Menu
  • MenuBar
  • MenuItem
  • PopupMenu
  • Scrollbar
  • ScrollPane
  • TextArea
  • TextField
  • Window

這種重量級的組件需要有一個操作系統級別上對等的圖形函數來支持它,在headless的機器上它們將不能正常工作。 

與Canvas、Panel和Image組件相關的組件不需要拋出HeadlessException異常,因為這些組件在操作系統級別上的對等圖形函數可以使用空函數,然后作為輕量級組件來處理。

一個Headless的toolkit也會把Java組件綁定到本地資源上去,但是它只有在資源中不包含顯示設備或輸入設備時才會這樣做。 

Graphics Environment

java.awt.GraphicsEnvironment類是一個抽象類,它描述了在給定平臺中,可以在Java技術中使用的由 GraphicsDevice對象和Font對象組成的集合。該GraphicsEnvironment中的資源可以是本地的也可以是遠程設備。 GraphicsDevice對象可以是顯示器,打印機或者圖形緩存等,并且它們是Graphics2D 繪制函數的目標。每一個GraphicsDevice都有許多與之關聯的GraphicsConfiguration對象。這些對象指定了不同的配置環境,在這些配置環境中可以使用GraphicsDevice。

Table 1 顯示GraphicsEnvironment 方法,檢查Headless模式支持

Table 1.  Headless 模式方法    

方法 描述

public static boolean
isHeadless()

測試環境是否為headless, 對于是否不支持display  device,keyboard,mouse。如果這個方法returns true,theToolkitandGraphicsEnvironmentclasses 拋出(thrown)依賴于display device, keyboard, mouse的aHeadlessExceptionis異常.

public boolean
isHeadlessInstance()

Returns  thisGraphicsEnvironmentcan 是否支持dieplay device,keyboard,mouse. 如果這個方法 returns  true,  theGraphicsEnvironmentthat 拋出(throw)一個依賴于 display device, keyboard, mouse的aHeadlessExceptionis 異常.

注意:isHeadless()方法檢查特定的系統屬性,java.awt.headless而不是系統的硬件配置. 

HeadlessException 拋出的代碼,這取決于display device、keyboard、mouse在一個環境稱為不支持任何這些.唯一的例外是來自一個 UnsupportedOperationException,本身就是來源于一個RuntimeException.

設置Headless模式

使用Headless模式操作,您必須首先了解如何檢查和設置系統屬性與此相關的模式。此外,你必須了解如何創建一個默認的工具包使用工具箱的無頭實現類.

系統屬性配置

為了啟用headless模式,需要使用setProperty()方法去設置相應的系統屬性。本方法可以讓你用期望的值來設置系統屬性。

  1. System.setProperty("java.awt.headless""true"); 

上面的代碼中,java.awt.headless是一個系統屬性,true是我們設定的值。

如果你想在一個相同的程序中使用headless和傳統環境,你可以使用下面的命令行來完成:

  1. java -Djava.awt.headless=true   

創建默認Toolkit

如果名字為java.awt.headless的系統屬性被設置為true,那么headless工具包就會被使用。接下來使用getDefaultToolkit()方法來創建一個headless toolkit的實例:

  1. Toolkit tk = Toolkit.getDefaultToolkit(); 

Headless模式檢查

要檢查Headless模式的可用性,使用GraphicsEnvironment類的isHeadless()方法:

  1. GraphicsEnvironment ge =  
  2. GraphicsEnvironment.getLocalGraphicsEnvironment();  
  3. boolean headless_check = ge.isHeadless(); 

該方法檢查java.awt.headless系統屬性。如果這個屬性有一個為true的值,那么就會從工具包和依賴于一個顯示器,鍵盤,鼠標的GraphicsEnvironment類的區域中拋出一個HeadlessException。
在Headless模式中操作

設置好headless模式并創建一個headless工具包的實例后,您的應用程序可以執行以下操作: 

  • 創建輕量級組件,如Canvas,Panel,和Swing組件,除了top級別.
  • 收集關于可用的字體、字體指標和字體設置的信息
  • 設置顏色來渲染文本和圖形
  • 創造和獲取圖像,為渲染準備圖片
  • 使用java.awt.PrintJob, java.awt.print.*, 和 javax.print.* 類進行打印。
  • 發出"嗶嗶"音頻。

Canvas(畫布)

下面的代碼會在屏幕上繪制出一個空白的矩形區域,你可以在上面繪制線條。可以使用Canvas類創建一個新的Canvas組件。

  1. final Canvas c = new Canvas()  
  2. {  
  3.     public void paint(Graphics g)  
  4.     {  
  5.         Rectangle r = getBounds();  
  6.         g.drawLine(00, r.width - 1, r.height - 1);  
  7.         g.drawLine(0, r.height - 1, r.width - 10);  
  8.     }  
  9. }; 

Fonts(字體)

這段代碼顯示了怎么使用Font類畫一個文本字符串并設置文字的字體。Graphics對象是用來繪制這個字符串的。

  1. public void paint(Graphics g)  
  2. {  
  3.     g.setFont(new Font("Arial", Font.ITALIC, 12));  
  4.     g.drawString("Test"328);  
  5. }  

Colors

這段代碼顯示了如何使用指定的紅,綠,藍的值來設置一條線的顏色。Graphics對象是用來繪制這條線的。

  1. public void paint(Graphics g)  
  2. {  
  3.     g.setColor(new Color(2551270));  
  4.     g.drawLine(0, r.height - 1, r.width - 10);  

Images

在下面的代碼中,javax.imageio.ImageIO類的使用read()方法對圖1所示的grapefruit.jpg文件進行解碼,并返回一個緩存圖片。

  1. Image i = null;  
  2. try 
  3. {  
  4.     File f = new File("grapefruit.jpg");  
  5.     i = ImageIO.read(f);  
  6. }  
  7. catch (Exception z)  
  8. {  
  9.     z.printStackTrace(System.err);  

圖1。grapefruit.jpg圖像文件

Print

這段代碼演示了如何打印已經準備好的畫布,你可以使用paint方法自定義打印機的的默認畫面。

  1. PrinterJob pj = PrinterJob.getPrinterJob();  
  2. pj.setPrintable(new Printable()  
  3. {  
  4.    public int print(Graphics g, PageFormat pf, int pageIndex)  
  5.    {  
  6.        if (pageIndex > 0)  
  7.        {  
  8.            return Printable.NO_SUCH_PAGE;  
  9.        }  
  10.  
  11.        ((Graphics2D)g).translate(pf.getImageableX(),  
  12.                                  pf.getImageableY());  
  13.  
  14.        // Paint canvas.  
  15.        c.paint(g);  
  16.  
  17.        return Printable.PAGE_EXISTS;  
  18.    }  
  19. }); 

Beep

下面的這段代碼展示了如果使用 Toolkit類的beep方法發出嘟嘟聲。

  1. Toolkit tk = Toolkit.getDefaultToolkit();  
  2. tk.beep();  

 #p#

使用Headless模式簡單例子

以下的HeadlessBasics例子運用了文章中描述的所有功能。

要運行這個的例子,需要用javac對下面的代碼進行編譯。復制grapefruit.jpg圖片文件到HeadlessBasics類所在的目錄下面。

  1. import java.awt.*;  
  2. import java.io.*;  
  3. import java.awt.print.*;  
  4.  
  5. import javax.imageio.*;  
  6.  
  7. public class HeadlessBasics  
  8. {  
  9.     public static void main(String[] args)  
  10.     {  
  11.         // Set system property.  
  12.         // Call this BEFORE the toolkit has been initialized, that is,  
  13.         // before Toolkit.getDefaultToolkit() has been called.  
  14.         System.setProperty("java.awt.headless""true");  
  15.  
  16.         // This triggers creation of the toolkit.  
  17.         // Because java.awt.headless property is set to true, this  
  18.         // will be an instance of headless toolkit.  
  19.         Toolkit tk = Toolkit.getDefaultToolkit();  
  20.         // Standard beep is available.  
  21.         tk.beep();  
  22.  
  23.         // Check whether the application is  
  24.         // running in headless mode.  
  25.         GraphicsEnvironment ge =  
  26.         GraphicsEnvironment.getLocalGraphicsEnvironment();  
  27.         System.out.println("Headless mode: " + ge.isHeadless());  
  28.  
  29.         // No top levels are allowed.  
  30.         boolean created = false;  
  31.         try 
  32.         {  
  33.             Frame f = new Frame("Frame");  
  34.             created = true;  
  35.         }  
  36.         catch (Exception z)  
  37.         {  
  38.             z.printStackTrace(System.err);  
  39.             created = false;  
  40.         }  
  41.         System.err.println("Frame is created: " + created);  
  42.  
  43.         // No other components except Canvas and Panel are allowed.  
  44.         created = false;  
  45.         try 
  46.         {  
  47.             Button b = new Button("Button");  
  48.             created = true;  
  49.         }  
  50.         catch (Exception z)  
  51.         {  
  52.             z.printStackTrace(System.err);  
  53.             created = false;  
  54.         }  
  55.         System.err.println("Button is created: " + created);  
  56.           
  57.         // Canvases can be created.  
  58.         final Canvas c = new Canvas()  
  59.         {  
  60.             public void paint(Graphics g)  
  61.             {  
  62.                 Rectangle r = getBounds();  
  63.                 g.drawLine(00, r.width - 1, r.height - 1);  
  64.                 // Colors work too.  
  65.                 g.setColor(new Color(2551270));  
  66.                 g.drawLine(0, r.height - 1, r.width - 10);  
  67.                 // And fonts  
  68.                 g.setFont(new Font("Arial", Font.ITALIC, 12));  
  69.                 g.drawString("Test"328);  
  70.             }  
  71.         };  
  72.         // And all the operations work correctly.  
  73.         c.setBounds(3232128128);  
  74.  
  75.         // Images are available.  
  76.         Image i = null;  
  77.         try 
  78.         {  
  79.             File f = new File("grapefruit.jpg");  
  80.             i = ImageIO.read(f);  
  81.         }  
  82.         catch (Exception z)  
  83.         {  
  84.             z.printStackTrace(System.err);  
  85.         }  
  86.         final Image im = i;  
  87.           
  88.         // Print system is available.  
  89.         PrinterJob pj = PrinterJob.getPrinterJob();  
  90.         pj.setPrintable(new Printable()  
  91.         {  
  92.             public int print(Graphics g, PageFormat pf, int pageIndex)  
  93.             {  
  94.                 if (pageIndex > 0)  
  95.                 {  
  96.                     return Printable.NO_SUCH_PAGE;  
  97.                 }  
  98.                 ((Graphics2D)g).translate(pf.getImageableX(),  
  99.                                           pf.getImageableY());  
  100.  
  101.                 // Paint the canvas.  
  102.                 c.paint(g);  
  103.  
  104.                 // Paint the image.  
  105.                 if (im != null)  
  106.                 {  
  107.                     g.drawImage(im, 32326464null);  
  108.                 }  
  109.  
  110.                 return Printable.PAGE_EXISTS;  
  111.             }  
  112.         });  
  113.         try 
  114.         {  
  115.             pj.print();  
  116.         }  
  117.         catch (Exception z)  
  118.         {  
  119.             z.printStackTrace(System.err);  
  120.         }  
  121.     }  
  122. }  

圖2顯示了這個例子中的打印輸出結果

圖2。HeadlessBasics的打印輸出。

此外,你可以看到以下的信息:

  1. Headless mode: true 
  2. java.awt.HeadlessException  
  3. at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)  
  4. at java.awt.Window.<init>(Unknown Source)  
  5. at java.awt.Frame.<init>(Unknown Source)  
  6. at HeadlessBasics.main(HeadlessBasics.java:24)  
  7. Frame is created: false 
  8. java.awt.HeadlessException  
  9. at java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)  
  10. at java.awt.Button.<init>(Unknown Source)  
  11. at HeadlessBasics.main(HeadlessBasics.java:39)  
  12. Button is created: false 

注:出于演示的目的,最初的代碼會導致此應用程序拋出2個java.awt.HeadlessExceptions異常。

作為上一種方式的替代,你可以把標準輸出信息放到一個文件中,然后把文件打印出來。在這種情況下,使用下面的命令行來運行這個例子:

java HeadlessBasics 2> standard_output.txt 

把現有的應用程序轉換為Headless模式。

你怎么把現有的應用程序轉換為可執行的headless模式?要執行此轉換的最有效的方法是分析你的源代碼以確定任何的功能都是依賴于Headless模式的。換句話說,要實現相同的功能,你必須找到那些會拋出HeadlessException異常的類和方法,然后使用獨立的headless模式替換這些類和方法。

你可以使用Java SE 6 API說明來判斷一個特定的類或方法是否支持headless模式。如果一個特定的組件不支持headless模式,你的程序需要捕獲的唯一的異常是 HeadlessException。它會在其它可能的異常之前被拋出。這也是為什么在本節的代碼示例"舉例: 使用Headless模式"中,沒有什么特殊的必要性來捕獲其它異常。

你肯定會發現其它有用的方法來使用headless模式帶來的好處。我們希望本文能幫你完成此項任務,在Java SE平臺中玩出一片新天地。 

獲取更多信息 

AWT Enhancements in J2SE 1.4: Headless Support

J2SE 1.4 platform documentation: HeadlessException

The New Modality API in Java SE 6

The java.awt.Toolkit Class

The java.awt.GraphicsEnvironment Class

關于作者 

Artem Ananiev 是位于 Saint Petersburg的Sun Microsystems公司的一名軟件工程師,俄羅斯人。之前他曾經在Abstract Window Toolkit (AWT) 項目中工作過幾年,他主要的技能領域是模態,機器人和多屏系統。 

Alla Redko  是位于 Saint Petersburg的 Sun Microsystems公司的技術作者,俄羅斯人。她為AWT項目編寫技術文檔,并且負責更新Java用戶手冊。在到Sun任職之前,她已經作為技術作者工作了八年。

英文原文:Using Headless Mode in the Java SE Platform

譯文鏈接:http://www.oschina.net/translate/using-headless-mode-in-java-se

責任編輯:林師授 來源: OSCHINA編譯
相關推薦

2017-03-20 17:20:35

iOSTensorFlow

2012-04-25 14:27:03

JavaScala

2012-04-25 14:12:12

JavaScala

2010-06-09 17:46:53

2011-07-28 15:07:23

iOS猜數游戲

2010-05-19 16:53:31

MySQL代碼

2012-04-26 13:37:43

ScalaJavaQCon

2009-01-16 09:10:39

JavaCRM系統企業應用

2017-02-23 13:51:05

2011-08-23 09:16:19

Python

2019-06-19 16:05:51

AppImageFlathubLinux

2020-02-18 09:45:44

云計算云平臺IT

2012-08-22 11:12:11

Ubuntu

2015-07-08 11:28:53

云服務平臺Docker MachDocker

2019-10-09 08:00:17

Kubernetes容器云平臺

2025-04-23 15:49:37

2017-01-13 16:29:35

華為助力云平臺

2017-05-10 14:47:37

Headless Ch頁面 Docker

2024-04-28 08:00:00

大型語言模型人工智能云平臺

2015-01-26 12:39:33

甲骨文PaaS
點贊
收藏

51CTO技術棧公眾號

一区视频免费观看| 怡红院亚洲色图| 亚洲色大成网站www| 欧美特黄a级高清免费大片a级| 欧美日本韩国一区| 清纯唯美一区二区三区| 中文字幕乱码一区二区| 亚洲香蕉av| 亚洲国产一区自拍| 91香蕉视频导航| 黄网站视频在线观看| 国产成人精品影视| 青青草国产精品一区二区| 99精品欧美一区二区| 成人在线日韩| 婷婷丁香激情综合| 亚洲7777| 国产91久久久| 日韩二区在线观看| 欧美www在线| 免费a在线观看播放| 国产精成人品2018| 一区二区三区不卡视频在线观看| 国产一区二区三区色淫影院| 国产精品午夜一区二区| 综合久久一区| 精品国产髙清在线看国产毛片| 欧美一区二区中文字幕| 91福利在线视频| 成人免费视频播放| 国产日韩精品在线| 欧美日韩免费一区二区| 最新精品国偷自产在线| 日韩午夜激情电影| 男女男精品视频站| 51精品视频| 亚洲视频香蕉人妖| 欧美日韩国产免费一区二区三区| 国产精品亚洲欧美在线播放| 午夜在线精品偷拍| 欧美国产一区二区三区| 亚洲一区 欧美| 久久男人av| 91精品国产综合久久久久久久久久 | 麻豆成人在线播放| h狠狠躁死你h高h| 日韩国产高清影视| 7777免费精品视频| 欧美久久久久久久久久久久| 日韩在线看片| 亚洲人av在线影院| 久久人妻少妇嫩草av无码专区| 婷婷激情成人| 欧美色欧美亚洲另类二区| 免费观看中文字幕| 99久久免费国产精精品| 美腿丝袜亚洲综合| 日本精品性网站在线观看| 在线观看亚洲网站| 久久人人88| 中文字幕亚洲无线码在线一区| 中文字幕5566| 美女av一区| 亚洲激情在线观看视频免费| 免费啪视频在线观看| 欧美欧美在线| 日韩欧美国产一区二区三区| 欧美xxxxxbbbbb| 国产一区二区三区黄网站| 欧美日本在线一区| 亚洲免费999| 懂色aⅴ精品一区二区三区| 天天综合日日夜夜精品| 欧美 日韩 国产在线观看| 美女扒开腿让男人桶爽久久软| 亚洲欧洲另类国产综合| 自拍偷拍一区二区三区| 国产二区三区在线| 亚洲色图视频网| 国内外成人激情免费视频| 巨大荫蒂视频欧美另类大| 中文字幕在线不卡一区| 热这里只有精品| 亚洲资源一区| 亚洲国产另类精品专区| 日本一本二本在线观看| 先锋欧美三级| 欧美精品久久99久久在免费线| www.桃色.com| 都市激情久久| 日韩成人黄色av| 加勒比av一区二区| 日韩免费黄色av| 国产又粗又猛又爽又黄的| 国产成人av电影| 欧美日韩精品中文字幕一区二区| 日本免费在线视频| 红桃av永久久久| 天天干天天玩天天操| 精品欧美午夜寂寞影院| 最近的2019中文字幕免费一页 | 国产成人一区二| 99热精品在线播放| 久久久国产精品不卡| 中文字幕第一页亚洲| 黑人巨大亚洲一区二区久| 欧美一级国产精品| 国产aⅴ激情无码久久久无码| 一区二区中文| 国产精品精品国产| 日本美女一级片| 亚洲欧洲一区二区在线播放| 免费在线观看毛片网站| 伊人www22综合色| 中文字幕无线精品亚洲乱码一区| 日韩av免费网址| 激情综合一区二区三区| 欧美日本韩国一区二区三区| 黄色影院在线看| 8x8x8国产精品| 69视频在线观看免费| 日韩午夜在线电影| 9a蜜桃久久久久久免费| 国产对白叫床清晰在线播放| 亚洲视频 欧洲视频| 色综合天天色综合| 国产一区二区三区站长工具| 68精品久久久久久欧美| 午夜精品久久久久久久99热黄桃 | 亚洲国产无线乱码在线观看| 91视频.com| 国产夫妻自拍一区| 日本一区精品视频| 久久久成人精品视频| 在线视频播放大全| 国产日产欧美精品一区二区三区| jizzjizzxxxx| 性欧美lx╳lx╳| 8090成年在线看片午夜| 偷拍精品一区二区三区| 午夜精品一区二区三区免费视频| 337p日本欧洲亚洲大胆张筱雨| 亚洲精品成人无限看| 成人精品在线视频| 黄网页在线观看| 91麻豆精品国产91久久久久久| 天堂网av2018| 裸体一区二区三区| 中文字幕中文字幕在线中心一区| 久久国产三级| 日韩中文娱乐网| 一级黄色录像大片| 自拍av一区二区三区| 激情图片中文字幕| 欧美激情一级片一区二区| 成人黄动漫网站免费| heyzo高清国产精品| 亚洲精品乱码久久久久久金桔影视| 国产一级视频在线播放| av男人天堂一区| 日批视频在线免费看| 欧美日韩国产高清电影| 国产欧美一区二区三区久久人妖| 麻豆网在线观看| 在线综合视频播放| 免费又黄又爽又色的视频| 丰满白嫩尤物一区二区| 丰满爆乳一区二区三区| 欧洲grand老妇人| 91视频国产精品| 成人免费一区二区三区牛牛| 日韩精品在线观看一区| 中文字幕av网站| 亚洲精品伦理在线| 欧美大片免费播放器| 日韩高清在线一区| 中国一级黄色录像| 青青久久av| 国产精品久久av| 欧美激情成人动漫| 国产视频一区在线| 国产绿帽刺激高潮对白| 午夜精品福利在线| 99久久久无码国产精品不卡| 国产成a人亚洲| 欧美牲交a欧美牲交aⅴ免费下载| 四虎成人精品永久免费av九九| 波多野结衣一区二区三区在线观看| а√天堂8资源在线| 在线播放日韩av| 亚洲国产综合一区| 欧洲一区二区三区在线| 久久久久久久国产视频| 久久久久久久免费视频了| 亚洲制服在线观看| 久久精品三级| 97免费视频观看| 日韩精品一区二区三区免费观影| av在线不卡一区| 九色成人搞黄网站| 97在线观看免费高清| 好了av在线| 亚洲男人天天操| 不卡视频在线播放| 欧美午夜不卡视频| 久久99精品波多结衣一区| 亚洲欧美在线观看| 久久精品一区二区免费播放 | http;//www.99re视频| 欧洲av不卡| 欧美激情亚洲另类| 日本视频在线观看| 亚洲人成网站999久久久综合| 国产女人18毛片水真多| 欧美性色欧美a在线播放| 国产真实乱人偷精品视频| 中文字幕日韩精品一区| wwwwww日本| kk眼镜猥琐国模调教系列一区二区| 国产wwwxx| 羞羞视频在线观看欧美| 国产91沈先生在线播放| 91视频久久| 日韩免费三级| 夜夜春成人影院| 国产专区一区二区| 福利电影一区| 99re视频| 视频一区日韩精品| 91日本视频在线| 91久久青草| 国产日韩精品视频| 欧美性生活一级| 国产精品人成电影| 精品成人av| 国产精品444| 国产精品扒开腿做爽爽爽视频软件| 97成人精品区在线播放| 午夜欧美激情| 欧美一区第一页| 性感女国产在线| 国模精品视频一区二区| 免费污视频在线观看| 欧美大片免费看| 性xxxfreexxxx性欧美| 美女av一区二区三区| av网站免费在线观看| 久久国产精品网站| 国产在线xxx| 久久人人爽国产| 美女av在线免费看| 日韩av电影在线免费播放| 国产精品亚洲一区二区三区在线观看| 97精品免费视频| 涩涩视频在线播放| 欧美在线不卡区| 成人免费网站www网站高清| 国产精品夜间视频香蕉| 日韩av黄色| 999日本视频| 欧美做受69| 日韩一本精品| 91精品国产91久久久久久黑人| 欧美大片免费播放| 亚洲精品美女91| 国产xxxxx在线观看| 麻豆免费看一区二区三区| 蜜臀一区二区三区精品免费视频 | 精品不卡在线| 国产99久久久国产精品成人免费| 日本精品一区二区| 91精品综合| 久久久久久人妻一区二区三区| 亚洲深夜激情| 免费看污污网站| 成熟亚洲日本毛茸茸凸凹| www.久久av| 亚洲欧美日韩国产综合| 人人干人人干人人干| 欧美性淫爽ww久久久久无| 国产美女免费看| 日韩精品欧美激情| 欧美18hd| 国产91成人在在线播放| 亚洲精品aa| 精品国产乱码久久久久久郑州公司 | 欧美一区二区三区网站| 欧美日本在线一区| 日韩电影在线观看完整版| 日韩在线中文视频| 色一区二区三区| 91在线免费视频| 国产成人精品三级高清久久91| 国产女人18毛片| 久久青草久久| 国产精品果冻传媒| 中文字幕在线一区免费| 女人十八岁毛片| 91精品国产色综合久久ai换脸 | www.久久东京| 婷婷久久青草热一区二区| 99精品视频网| 婷婷激情综合五月天| 久久综合av免费| 91成人福利视频| 欧美性xxxxxx少妇| 视频福利在线| 欧美国产日韩一区| 999精品嫩草久久久久久99| 欧美精品成人一区二区在线观看| 欧美三级乱码| 手机av在线网| 国产欧美日韩综合| 四虎精品永久在线| 亚洲精品一线二线三线无人区| 免费a级人成a大片在线观看| 国产成人精品亚洲精品| 九九热hot精品视频在线播放| 国产一区一区三区| 久久成人久久鬼色| 无码少妇一区二区| 欧美视频免费在线| 欧美 日韩 国产 成人 在线| 超碰97人人做人人爱少妇| 日韩精品免费观看视频| 麻豆av一区二区| 一道本一区二区| 成人性生活免费看| 亚洲成人777| 高清一区二区三区四区| 久久99热精品| 日韩三级网址| 热久久最新地址| 国产精品小仙女| 极品魔鬼身材女神啪啪精品| 欧美精品一卡两卡| 91精品专区| 国产欧美日韩视频| 欧美第一精品| 99热这里只有精品在线播放| 日本一区二区三区dvd视频在线| 五月天激情国产综合婷婷婷| 日韩精品在线影院| 免费成人直播| 欧美日韩三区四区| 日韩成人精品在线观看| 国产伦精品一区二区三区视频女| 在线视频一区二区三区| 性开放的欧美大片| 91探花福利精品国产自产在线| 最新国产精品久久久| japan高清日本乱xxxxx| 亚洲国产视频一区二区| 欧美一级一区二区三区| 国产91|九色| 欧美精品尤物在线观看| 中文字幕丰满乱码| 亚洲精品自拍动漫在线| 亚洲精品一区二区三区四区| 97视频在线免费观看| 国内精品久久久久久久久电影网 | 国产精品亲子伦av一区二区三区 | 午夜在线观看视频| 成人网在线视频| 亚洲无线一线二线三线区别av| 欧美大喷水吹潮合集在线观看| 精品国产户外野外| 国产二区视频在线观看| 成人有码在线视频| 在线成人黄色| 亚洲综合欧美综合| 日韩午夜精品视频| 在线看片福利| 亚洲国产一区二区三区在线播| 精品一区二区在线播放| 久久视频免费看| 亚洲剧情一区二区| crdy在线观看欧美| 3d动漫一区二区三区| 国产欧美日韩视频在线观看| 国产又黄又大又爽| 98视频在线噜噜噜国产| 日韩黄色大片网站| 潘金莲一级淫片aaaaa| 日韩欧美国产视频| 成人在线网址| 欧美日韩亚洲在线| 国产精品亚洲视频| 波多野结衣一区二区三区四区| 蜜臀久久99精品久久久无需会员 | 国产亚洲自拍一区| 国产视频手机在线观看| 欧美性资源免费| 99精品在线观看| 97香蕉碰碰人妻国产欧美| 欧美美女黄视频| 午夜欧美激情| 久久福利一区二区| 日本一二三四高清不卡| 蜜臀av免费在线观看|