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

Java理論和實踐: 理解JTS

開發 后端
JTS能夠確定事務中是不是只征用了一個資源管理器。如果它檢測出所有與事務相關的資源都一樣,它可以跳過兩階段提交并讓資源管理器自己來處理事務。

  什么是 JTS?

  JTS 是一個 組件事務監視器(component transaction monitor)。這是什么意思?我們將介紹事務處理監視器(TPM)這個概念,TPM 是一個程序,它代表應用程序協調分布式事務的執行。TPM 與數據庫出現的時間長短差不多;在 60 年代后期,IBM 首先開發了 CICS,至今人們仍在使用。經典的(或者說 程序化)TPM 管理被程序化定義為針對事務性資源(比如數據庫)的操作序列的事務。隨著分布式對象協議,如 CORBA、DCOM 和 RMI 的出現,人們希望看到事務更面向對象的前景。將事務性語義告知面向對象的組件要求對 TPM 模型進行擴展 ― 在這個模型中事務是按照事務性對象的調用方法定義的。JTS 只是一個組件事務監視器(有時也稱為 對象事務監視器(object transaction monitor)),或稱為 CTM。

  JTS 和 J2EE 的事務支持設計受 CORBA 對象事務服務(CORBA Object Transaction Service,OTS)的影響很大。實際上,JTS 實現 OTS 并充當 Java 事務 API(Java Transaction API)― 一種用來定義事務邊界的低級 API ― 和 OTS 之間的接口。使用 OTS 代替創建一個新對象事務協議遵循了現有標準,并使 J2EE 和 CORBA 能夠互相兼容。

  乍一看,從程序化事務監視器到 CTM 的轉變好像只是術語名稱改變了一下。然而,差別不止這一點。當 CTM 中的事務提交或回滾時,與事務相關的對象所做的全部更改都一起被提交或取消。但 CTM 怎么知道對象在事務期間做了什么事?象 EJB 組件之類的事務性組件并沒有 commit() 或 rollback() 方法,它們也沒向事務監視器注冊自己做了什么事。那么 J2EE 組件執行的操作如何變成事務的一部分呢?

  透明的資源征用

  當應用程序狀態被組件操縱時,它仍然存儲在事務性資源管理器(例如,數據庫和消息隊列服務器)中,這些事務性資源管理器可以注冊為分布式事務中的資源管理器。在第 1 部分中,我們討論了如何在單個事務中征用多個資源管理器,事務管理器如何協調這些資源管理器。資源管理器知道如何把應用程序狀態中的變化與特定的事務關聯起來。

  但這只是把問題的焦點從組件轉移到了資源管理器 ― 容器如何斷定什么資源與該事務有關,可以供它征用?請考慮下面的代碼,在典型的 EJB 會話 bean 中您可能會發現這樣的代碼:

  清單 1. bean 管理的事務的透明資源征用

1 InitialContext ic = new InitialContext();
2   UserTransaction ut = ejbContext.getUserTransaction();
3   ut.begin();
4   DataSource db1 = (DataSource) ic.lookup("java:comp/env/OrdersDB");
5   DataSource db2 = (DataSource) ic.lookup("java:comp/env/InventoryDB");
6   Connection con1 = db1.getConnection();
7   Connection con2 = db2.getConnection();
8   // perform updates to OrdersDB using connection con1
9   // perform updates to InventoryDB using connection con2
10   ut.commit();
11

  注意,這個示例中沒有征用當前事務中 JDBC 連接的代碼 ― 容器會為我們完成這個任務。我們來看一下它是如何發生的。

  資源管理器的三種類型

  當一個 EJB 組件想訪問數據庫、消息隊列服務器或者其它一些事務性資源時,它需要到資源管理器的連接(通常是使用 JNDI)。而且,J2EE 規范只認可三種類型的事務性資源 ― JDBC 數據庫、JMS 消息隊列服務器和“其它通過 JCA 訪問的事務性服務”。后面一種服務(比如 ERP 系統)必須通過 JCA(J2EE Connector Architecture,J2EE 連接器體系結構)訪問。對于這些類型資源中的每一種,容器或提供者都會幫我們把資源征調到事務中。

  在清單 1 中, con1 和 con2 好象是普通的 JDBC 連接,比如那些從 DriverManager.getConnection() 返回的連接。我們從一個 JDBC DataSource 得到這些連接,JDBC DataSource 可以通過查找 JNDI 中的數據源名稱得到。EJB 組件中被用來查找數據源( java:comp/env/OrdersDB )的名稱是特定于組件的;組件的部署描述符的 resource-ref 部分將其映射為容器管理的一些應用程序級 DataSource 的 JNDI 名稱。

  隱藏的 JDBC 驅動

  每個 J2EE 容器都可以創建有事務意識的池態 DataSource 對象,但 J2EE 規范并不向您展示如何創建,因為這不在 J2EE 規范內。瀏覽 J2EE 文檔時,您找不到任何關于如何創建 JDBC 數據源的內容。相反,您不得不為您的容器查閱該文檔。創建一個數據源可能需要向屬性或配置文件添加一個數據源定義,或者也可以通過 GUI 管理工具完成,這取決于您的容器。

  每個容器(或連接池管理器,如 PoolMan)都提供它自己的創建 DataSource 機制,JTA 魔術就隱藏在這個機制中。連接池管理器從指定的 JDBC 驅動器得到一個 Connection ,但在將它返回到應用程序之前,將它與一個也實現 Connection 的虛包包在一起,將自己置入應用程序和底層連接之間。當創建連接或者執行 JDBC 操作時,包裝器詢問事務管理器當前線程是不是正在事務的上下文中執行,如果事務中有 Connection 的話,就自動征用它。

  其它類型的事務性資源,JMS 消息隊列和 JCA 連接器,依靠相似的機制將資源征用隱藏起來,使用戶看不到。如果要使 JMS 隊列在部署時對 J2EE 應用程序可用,您就要再次使用特定于提供者的機制來創建受管 JMS 對象(隊列連接工廠和目標),然后在 JNDI 名稱空間內發布這些對象。提供者創建的受管對象包含與 JDBC 包裝器(由容器提供的連接池管理器添加)相似的自動征用代碼。

     透明的事務控制

  兩種類型的 J2EE 事務 ― 容器管理的和 bean 管理的 ― 在如何啟動和結束事務上是不同的。事務啟動和結束的地方被稱為 事務劃分(transaction demarcation)。清單 1 中的示例代碼演示了 bean 管理的事務(有時也稱為 編程(programmatic)事務)。Bean 管理的事務是由組件使用 UserTransaction 類顯式啟動和結束的。通過 ejbContext 使 UserTransaction 對 EJB 組件可用,通過 JNDI 使其對其它 J2EE 組件可用。

  容器根據組件的部署描述符中的事務屬性代表應用程序透明地啟動和結束容器管理的事務(或稱為 宣告式事務(declarative transaction))。通過將 transaction-type 屬性設置為 Container 或 Bean 您可以指出 EJB 組件是使用 bean 管理的事務性支持還是容器管理的事務性支持。

  使用容器管理的事務,您可以在 EJB 類或方法級別上指定事務性屬性;您可以為 EJB 類指定缺省的事務性屬性,如果不同的方法會有不同的事務性語義,您還可以為每個方法指定屬性。這些事務性屬性在裝配描述符(assembly descriptor)的 container-transaction 部分被指定。清單 2 顯示了一個裝配描述符示例。 trans-attribute 的受支持的值有:

  Supports

  Required

  RequiresNew

  Mandatory

  NotSupported

  Never

  trans-attribute 決定方法是否支持在事務內部執行、當在事務內部調用方法時容器會執行什么操作以及在事務外部調用方法時容器會執行什么操作。最常用的容器管理的事務屬性是 Required 。如果設置了 Required ,過程中的事務將在該事務中征用您的 bean,但如果沒有正在運行的事務,容器將為您啟動一個。在這個系列的第 3 部分,當您可能想使用每個事務屬性時,我們將研究各個事務屬性之間的區別。

  清單 2. EJB 裝配描述符樣本

1 <assembly-descriptor>
2   ...
3   <container-transaction>
4     <method>
5       <ejb-name>MyBeanejb-name>
6       <method-name>*method-name>
7     method>
8     <trans-attribute>Requiredtrans-attribute>
9   container-transaction>
10   <container-transaction>
11     <method>
12       <ejb-name>MyBeanejb-name>
13       <method-name>updateNamemethod-name>
14       method>
15    <trans-attribute>RequiresNewtrans-attribute>
16   container-transaction>
17   ...
18 assembly-descriptor>
19

  功能強大,但很危險

  與清單 1 中的示例不同,由于有宣告式事務劃分,這段組件代碼中沒有事務管理代碼。這不僅使結果組件代碼更加易讀(因為它不與事務管理代碼混在一起),而且它還有另一個更重要的優點 ― 不必修改,甚至不必訪問組件的源代碼,就可以在應用程序裝配時改變組件的事務性語義。

  盡管能夠指定與代碼分開的事務劃分是一種非常強大的功能,但在裝配時做出不好的決定會使應用程序變得不穩定,或者嚴重影響它的性能。對容器管理的事務進行正確分界的責任由組件開發者和應用程序裝配人員共同擔當。組件開發者需要提供足夠的文檔說明組件是做什么的,這樣應用程序部署者就能夠明智地決定如何構建應用程序的事務。應用程序裝配人員需要理解應用程序中的組件是怎樣相互作用的,這樣就可以用一種既強制應用程序保持一致又不削弱性能的方法對事務進行分界。在這個系列的第 3 部分中我們將討論這些問題。

  透明的事務傳播

  在任何類型的事務中,資源征用都是透明的;容器自動將事務過程中使用的任意事務性資源征調到當前事務中。這個過程不僅擴展到事務性方法使用的資源(比如在清單 1 中獲得的數據庫連接),還擴展到它調用的方法(甚至遠程方法)使用的資源。我們來看一下這是如何發生的。

  容器用線程與事務相關聯

  我們假設對象 A 的 methodA() 啟動一個事務,然后調用對象 B 的 methodB() (對象 B 將得到一個 JDBC 連接并更新數據庫)。 B 獲得的連接將被自動征調到 A 創建的事務中。容器怎么知道要做這件事?

  當事務啟動時,事務上下文與執行線程關聯在一起。當 A 創建事務時, A 在其中執行的線程與該事務關聯在一起。由于本地方法調用與主調程序(caller)在同一個線程內執行,所以 A 調用的每個方法也都在該事務的上下文中。

  櫥中骸骨

  如果對象 B 其實是在另一個線程,甚至另一個 JVM 中執行的 EJB 組件的存根,情況會怎樣?令人吃驚的是,遠程對象 B 訪問的資源仍將在當前事務中被征用。EJB 對象存根(在主調程序的上下文中執行的那部分)、EJB 協議(IIOP 上的 RMI)和遠端的骨架對象協力要使其透明地發生。存根確定調用者是不是正在執行一個事務。如果是,事務標識,或者說 Xid,被作為 IIOP 調用的一部分與方法參數一起傳播到遠程對象。(IIOP 是 CORBA 遠程-調用協議,它為傳播執行上下文(比如事務上下文和安全性上下文)的各種元素而備;關于 RMI over IIOP 的更多信息,請參閱 參考資料。)如果調用是事務的一部分,那么遠程系統上的骨架對象自動設置遠程線程的事務上下文,這樣,當調用實際的遠程方法時,它已經是事務的一部分了。(存根和骨架對象還負責開始和提交容器管理的事務。)

  事務可以由任何 J2EE 組件來啟動 ― 一個 EJB 組件、一個 servlet 或者一個 JSP 頁面(如果容器支持的話,還可以是一個應用程序客戶機)。這意味著,應用程序可以在請求到達時在 servlet 或者 JSP 頁面中啟動事務、在 servlet 或者 JSP 頁面中執行一些處理、作為頁面邏輯的一部分訪問多個服務器上的實體 bean 和會話 bean 并使所有這些工作透明地成為一個事務的一部分。圖 1 演示了事務上下文怎樣遵守從 servlet 到 EJB,再到 EJB 的執行路徑。

  圖 1.單個事務中的多個組件

  

  最優化

  讓容器來管理事務允許容器為我們做出某些最優化決定。在圖 1 中,我們看到一個 servlet 和多個 EJB 組件在單個事務的上下文中訪問一個數據庫。每個組件都獲得到數據庫的 Connection ;很可能每個組件都在訪問同一個數據庫。即使多個連接是從不同的組件到同一個資源,JTS 也可以檢測出多個資源是否和事務有關,并最優化該事務的執行。您可以從第 1 部分回憶起來,單個事務要包含多個資源管理器需要使用兩階段提交協議,這比單個資源管理器使用的單階段提交代價要高。JTS 能夠確定事務中是不是只征用了一個資源管理器。如果它檢測出所有與事務相關的資源都一樣,它可以跳過兩階段提交并讓資源管理器自己來處理事務。

  結束語

  這個慮及透明事務控制、資源征用和透明傳播的魔術不是 JTS 的一部分,而是 J2EE 容器如何在幕后代表 J2EE 應用程序使用 JTA 和 JTS 服務的一部分。在幕后有許多實體合力使這個魔術透明地發生;EJB 存根和骨架、容器廠商提供的 JDBC 驅動器包裝器、數據庫廠商提供的 JDBC 驅動器、JMS 提供器和 JCA 連接器。所有這些實體都與事務管理器進行交互,于是應用程序代碼就不必與之交互了。

【編輯推薦】

  1. 高手Java核心技術學習筆記
  2. 如何使用 JavaScript XSLT 處理 XML 文件
  3. JSP結合XML+XSLT將輸出轉換HTML
  4. Java通過JNI調用C語言的方法
  5. JAVA環境變量的設置
責任編輯:王觀 來源: 中國IT實驗室
相關推薦

2011-06-30 11:04:05

JTS

2024-03-28 09:36:29

2017-05-04 16:33:58

Java線程池實踐

2023-05-05 07:35:01

QoS網絡業務

2015-04-29 11:23:03

Java理論與實踐 Volatile 變

2012-04-28 09:54:16

Java

2012-08-10 13:55:56

Java動態代理

2012-03-21 10:09:12

2010-04-26 14:19:22

BondLinux系統安裝

2022-05-06 08:00:51

Golang編程語言Java

2009-06-16 11:26:22

弱引用內存泄露

2011-06-28 17:43:37

SEO

2019-06-17 16:47:54

網絡協議DNS

2015-09-11 09:59:32

2025-01-22 11:10:34

2022-03-09 23:02:30

Java編程處理模型

2024-01-09 07:25:31

2024-07-26 00:16:11

2025-09-08 07:14:25

點贊
收藏

51CTO技術棧公眾號

新狼窝色av性久久久久久| 国自产拍偷拍精品啪啪一区二区| 青青在线视频观看| 91九色蝌蚪91por成人| 国偷自产av一区二区三区| 日本一区二区综合亚洲| 97视频在线观看视频免费视频 | 一区二区三区| av毛片久久久久**hd| 久久精品在线播放| 欧美成人三级在线播放| 欧美日韩影视| 欧美重口另类| 亚洲午夜在线视频| 国产美女久久精品| 美国美女黄色片| 五月天av在线| 26uuu精品一区二区 | 岛国在线视频网站| 国产成人在线色| www.欧美精品一二三区| 国产 porn| 成人在线免费观看| 美女mm1313爽爽久久久蜜臀| 亚洲一区二区福利| 欧洲熟妇精品视频| 91欧美在线视频| 另类中文字幕网| 91成人福利在线| 国产精品扒开腿做爽爽爽a片唱戏| 国产蜜臀av在线播放| 成人网页在线观看| 97在线免费观看视频| 永久免费未视频| 免费欧美网站| 亚洲自拍与偷拍| 国产成人精品免费视频大全最热| 欧美精品入口蜜桃| 国产精品对白久久久久粗| 欧美日免费三级在线| 亚洲一区二区在线免费观看| 91精品国自产| 日韩国产精品91| 日韩视频免费中文字幕| 国产女主播喷水高潮网红在线| 日韩a**中文字幕| 成人欧美一区二区三区在线播放| 91亚洲精品久久久| 国产网站在线看| 国产在视频线精品视频www666| 欧美日韩另类一区| 国产手机免费视频| 免费在线观看一级毛片| www.欧美色图| 国产一区二区视频在线免费观看| 亚洲成人av影片| 午夜精品毛片| 日韩av网站导航| 五月天亚洲视频| 亚洲按摩av| 久久免费看少妇高潮| 国产精品自拍偷拍| 国产一级片一区二区| 正在播放日韩欧美一页| 日韩成人在线视频观看| 精品人妻一区二区免费视频| 欧美一级网址| 欧美性videos高清精品| 偷拍亚洲欧洲综合| 这里只有精品在线播放| 97超碰人人看| 三级在线看中文字幕完整版| 亚洲国产精品国自产拍av| 91文字幕巨乱亚洲香蕉| 日本免费精品视频| 韩国亚洲精品| 日韩在线观看免费高清完整版| 亚洲不卡的av| 欧美巨大xxxx| 亚洲性av网站| 三级黄色录像视频| 欧美黄色精品| 丝袜美腿亚洲一区二区| 91黄色免费视频| 视频精品在线观看| 亚洲国产欧美在线成人app| 亚洲视频一二三四| 欧美电影h版| 精品久久久久久久中文字幕 | 日本资源在线| 精品久久久久久久久中文字幕 | 在线视频不卡一区二区| 日韩一级片免费观看| 老色鬼精品视频在线观看播放| 成人免费自拍视频| 成人一二三四区| 美女精品网站| 91国产一区在线| 中国a一片一级一片| 国产成人av一区二区三区在线观看| 国产精品久久久久91| 欧美激情亚洲综合| 一区在线视频| 色综合五月天导航| 国产精品久久久精品四季影院| 精品久久久久久久久久久aⅴ| 亚洲精品xxx| 欧美一级特黄高清视频| 欧美午夜视频| 欧美激情精品久久久久久黑人| 久久国产黄色片| 香蕉亚洲视频| 92看片淫黄大片看国产片| 一级黄色片免费| 99re视频精品| 精品日韩美女| 天堂中文资源在线| av在线不卡电影| 一本一道久久a久久综合精品| av在线最新| 欧美日韩亚洲一区二区| 国产素人在线观看| 精品一区二区三区亚洲| 国产一区二区三区精品久久久 | xxxxx99| 99精品国产一区二区青青牛奶| 欧美富婆性猛交| 波多野结衣一本一道| 99精品视频在线免费观看| 在线观看av的网址| 人妖欧美1区| 亚洲不卡av一区二区三区| 国内少妇毛片视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 在线精品视频一区二区| 天天干天天爽天天射| 免费成人高清在线视频theav| 久久久久国产视频| 日本va欧美va国产激情| 国产乱色国产精品免费视频| 国产精品12| 91国内在线| 天天影视网天天综合色在线播放| 国产在线视频三区| 香蕉av一区二区| 国产精品午夜一区二区欲梦| 免费在线黄色网址| 在线观看亚洲a| 午夜精产品一区二区在线观看的| 91偷拍一区二区三区精品| 欧美猛交ⅹxxx乱大交视频| 日本网站在线免费观看| 日韩专区在线视频| 蜜桃av噜噜一区二区三| 日本电影在线观看网站| 一区二区三区 在线观看视频| 欧美精品 - 色网| 久久男人av| 中文字幕亚洲一区二区三区五十路 | 国产孕妇孕交大片孕| 国产电影一区在线| 日韩成人午夜影院| baoyu135国产精品免费| 亚洲系列中文字幕| 午夜精品久久久久久久蜜桃| 国产女人aaa级久久久级| 精品久久久久久久无码| 欧美色蜜桃97| 欧美一乱一性一交一视频| 在线免费av片| 91免费看`日韩一区二区| 六月丁香激情网| 欧美三级一区| 久久久久久国产| 四虎影院在线域名免费观看| 日本久久精品电影| 国产乱淫av片| 天天综合一区| 日本精品视频在线观看| 亚洲大尺度视频| 国产精品久久久久aaaa| 国产中文字幕免费观看| 91亚洲无吗| 欧美有码在线视频| 99青草视频在线播放视| 欧美变态口味重另类| 亚洲一二三精品| 国产综合久久久久影院| 日韩免费毛片| 另类激情视频| 日韩av在线电影网| 懂色av中文字幕| 亚洲精品日韩一| 久久久精品高清| 亚洲成人中文| 亚洲精品一品区二品区三品区| 悠悠资源网亚洲青| zzjj国产精品一区二区| 日本美女一级视频| 欧美日韩国产123区| 日韩av在线播| 亚洲欧洲日韩在线| 黄色国产在线观看| 一区二区高清| 在线视频福利一区| 小嫩嫩12欧美| 欧美一级片在线播放| 99精品老司机免费视频| 亚洲精品大尺度| 国产伦理一区二区| 亚洲视频在线一区观看| 天堂av2020| 亚洲成av人片乱码色午夜| 国产一区二区在线网站| 国产高清日韩| 欧美国产亚洲精品久久久8v| 国产乱视频在线观看| 一本色道久久综合精品竹菊| 37p粉嫩大胆色噜噜噜| 香蕉久久夜色精品国产| 超碰10000| 日韩毛片视频| 成人中文字幕在线观看| 自拍视频在线看| 久久久久久国产精品三级玉女聊斋| 国产三级视频在线看| 日韩成人在线视频观看| 国内毛片毛片毛片毛片| 亚洲国产va精品久久久不卡综合| 好吊操视频这里只有精品| 激情婷婷亚洲| 男同互操gay射视频在线看| 免费观看亚洲天堂| 国产精品一区二区三区在线播放 | 小毛片在线观看| 国产福利一区二区三区视频| 爱豆国产剧免费观看大全剧苏畅| 日韩影院在线观看| 久久久久人妻精品一区三寸| 亚洲国内欧美| 欧美lavv| 色老板在线视频一区二区| 国产精品一区二区三区精品| 电影网一区二区| 国内精品久久久久伊人av| 视频一区二区在线播放| 精品成人a区在线观看| 无码人妻丰满熟妇区bbbbxxxx| 亚洲v日本v欧美v久久精品| 久草网站在线观看| 91色porny| 无遮挡aaaaa大片免费看| 91一区二区三区在线播放| 99久久免费看精品国产一区| 99久久99久久精品国产片果冻| 一边摸一边做爽的视频17国产 | 日韩欧美三级| 一区二区三区四区五区精品 | 亚洲国产精品成人天堂| 免费视频国产一区| 免费国产在线精品一区二区三区| 婷婷综合一区| 视频在线精品一区| 97久久综合精品久久久综合| 国产精品视频500部| 久久精品凹凸全集| 免费观看成人在线| 欧美中文一区二区| 一区二区三区四区欧美| 你懂的视频一区二区| 人妻av无码专区| 免费一区视频| 伊人色在线观看| 福利一区二区在线| 国产男男chinese网站| 国产欧美精品区一区二区三区 | 国产精品视频自拍| 精品国产亚洲一区二区三区大结局 | 久久视频免费在线播放| 亚洲 欧美 自拍偷拍| 欧美人妇做爰xxxⅹ性高电影| 国产又粗又猛又黄又爽无遮挡| 日韩手机在线导航| 91九色蝌蚪91por成人| 日韩精品一区二区三区swag | 欧美日产一区二区三区在线观看| 日本亚州欧洲精品不卡| 国产精品久在线观看| 成人av观看| 国产在线日韩在线| 成人深夜福利| 国产精品免费网站| 亚洲国产中文在线二区三区免| 成人黄色短视频在线观看| 在线日韩成人| 欧美一二三四五区| 少妇高潮一区二区三区| 亚洲精品白虎| 一本色道88久久加勒比精品| 一路向西2在线观看| 国产91露脸合集magnet| 无码 人妻 在线 视频| 一区二区三区欧美在线观看| 欧美做爰爽爽爽爽爽爽| 精品久久久久久中文字幕一区奶水| 中文天堂在线视频| 欧美亚洲综合网| 精品人妻一区二区三区潮喷在线 | 91丝袜超薄交口足| 26uuu亚洲综合色欧美| 毛片aaaaa| 欧美美女一区二区三区| 中国黄色一级视频| 亚洲激情在线观看| a篇片在线观看网站| 久久精品美女视频网站| 国产中文在线播放| 亚洲a一级视频| 不卡中文一二三区| 91专区在线观看| 国产成人av影院| 成人免费黄色小视频| 欧美最猛性xxxxx直播| 天天干视频在线| 亚洲欧美日韩直播| 搞黄视频免费在线观看| 午夜精品三级视频福利| 国产日本亚洲| 一区在线电影| 日韩激情av在线| 蜜桃精品成人影片| 亚洲二区在线观看| 国内精品国产成人国产三级| 日韩资源在线观看| 巨胸喷奶水www久久久 | 成功精品影院| 超碰97在线看| 国产毛片精品一区| 三级黄色片在线观看| 亚洲人成影院在线观看| 中文天堂在线资源| 在线视频免费一区二区| 手机看片久久| 日韩电影天堂视频一区二区| 亚洲一区久久| 日本xxxxxxxxx18| 色婷婷精品久久二区二区蜜臀av | 中文字幕乱码无码人妻系列蜜桃| 亚洲美女激情视频| 韩国美女久久| 欧美日韩成人一区二区三区| 免播放器亚洲| 黄免费在线观看| 欧美日韩你懂的| 免费人成在线观看播放视频| 91精品视频免费观看| 在线中文字幕第一区| 日批视频免费看| 香蕉加勒比综合久久| 日韩在线观看视频一区| 欧美综合在线第二页| 中文字幕综合| 男女啪啪的视频| 乱人伦精品视频在线观看| 国产交换配乱淫视频免费| 在线亚洲欧美专区二区| 在线播放日本| 欧美亚洲国产日本| 国产99亚洲| 欧美wwwwwww| 亚洲毛片av在线| 欧洲精品久久一区二区| 欧美孕妇毛茸茸xxxx| 欧美色图一区| 99视频在线观看视频| 亚洲高清免费在线| 欧美一区二区三区少妇| 九九热这里只有在线精品视| 1313精品午夜理伦电影| 丰满爆乳一区二区三区| 国产欧美日韩在线视频| 国产强伦人妻毛片| 97视频com| 青青草国产免费一区二区下载| 久久aaaa片一区二区| 福利微拍一区二区| 色网站免费在线观看| 国产综合 伊人色| 蜜桃av一区二区在线观看| 无码国产69精品久久久久同性| 欧美日韩视频一区二区| 久草在线资源站资源站| 日韩精品一区二区三区丰满| 国产一区在线观看麻豆| 天堂网一区二区三区| 日韩精品一区二区三区在线| 成人性生活av| 一本色道久久88亚洲精品综合| 久久色在线视频| 国产欧美第一页|