久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Tomcat Catalina為什么不new出來原理解析

瀏覽:267日期:2023-03-19 16:51:53

一、Catalina為什么不new出來?

掌握了Java的類加載器和雙親委派機(jī)制,現(xiàn)在我們就可以回答正題上來了,Tomcat的類加載器是怎么設(shè)計(jì)的?

1.Web容器的特性

Web容器有其自身的特殊性,所以在類加載器這塊是不能完全使用JVM的類加載器的雙親委派機(jī)制的。在Web容器中我們應(yīng)該要滿足如下的特性:

隔離性

部署在同一個(gè)Web容器上的兩個(gè)Web應(yīng)用程序所使用的Java類庫可以實(shí)現(xiàn)相互隔離。設(shè)想一下,兩個(gè)Web應(yīng)用,一個(gè)使用了Spring3.0,另一個(gè)使用了新的的5.0,應(yīng)用服務(wù)器使用一個(gè)類加載器,Web應(yīng)用將會(huì)因?yàn)閖ar包覆蓋而無法啟動(dòng)。

靈活性:

Web應(yīng)用之間的類加載器相互獨(dú)立,那么就能針對(duì)一個(gè)Web應(yīng)用進(jìn)行重新部署,此時(shí)Web應(yīng)用的類加載器會(huì)被重建,而且不會(huì)影響其他的Web應(yīng)用。如果采用一個(gè)類加載器,類之間的依賴是雜亂復(fù)雜的,無法完全移出某個(gè)應(yīng)用的類。

性能:

性能也是一個(gè)比較重要的點(diǎn)。部署在同一個(gè)Web容器上的兩個(gè)Web應(yīng)用程序所使用的Java類庫可以互相共享。這個(gè)需求也很常見,例如,用戶可能有10個(gè)使用Spring框架的應(yīng)用程序部署在同一臺(tái)服務(wù)器上,如果把10份Spring分別存放在各個(gè)應(yīng)用程序的隔離目錄中,將會(huì)是很大的資源浪費(fèi)——這主要倒不是浪費(fèi)磁盤空間的問題,而是指類庫在使用時(shí)都要被加載到Web容器的內(nèi)存,如果類庫不能共享,虛擬機(jī)的方法區(qū)就會(huì)很容易出現(xiàn)過度膨脹的風(fēng)險(xiǎn)。

2.Tomcat類加載器結(jié)構(gòu)

明白了Web容器的類加載器有多個(gè),再來看tomcat的類加載器結(jié)構(gòu)。

首先上張圖,整體看下tomcat的類加載器:

可以看到在原先的java類加載器基礎(chǔ)上,tomcat新增了幾個(gè)類加載器,包括3個(gè)基礎(chǔ)類加載器和每個(gè)Web應(yīng)用的類加載器,其中3個(gè)基礎(chǔ)類加載器可在conf/catalina.properties中配置,具體介紹下:

Common

以應(yīng)用類加載器為父類,是tomcat頂層的公用類加載器,其路徑由conf/catalina.properties中的common.loader指定,默認(rèn)指向${catalina.base}/lib下的包。

Catalina

以Common類加載器為父類,是用于加載Tomcat應(yīng)用服務(wù)器的類加載器,其路徑由server.loader指定,默認(rèn)為空,此時(shí)tomcat使用Common類加載器加載應(yīng)用服務(wù)器。

Shared

以Common類加載器為父類,是所有Web應(yīng)用的父類加載器,其路徑由shared.loader指定,默認(rèn)為空,此時(shí)tomcat使用Common類加載器作為Web應(yīng)用的父加載器。

Web應(yīng)用

以Shared類加載器為父類,加載/WEB-INF/classes目錄下的未壓縮的Class和資源文件以及/WEB-INF/lib目錄下的jar包,該類加載器只對(duì)當(dāng)前Web應(yīng)用可見,對(duì)其他Web應(yīng)用均不可見。

默認(rèn)情況下,Common、Catalina、Shared類加載器是同一個(gè),但可以配置3個(gè)不同的類加載器,使他們各司其職。

首先,Common類加載器復(fù)雜加載Tomcat應(yīng)用服務(wù)器內(nèi)部和Web應(yīng)用均可見的類,如Servlet規(guī)范相關(guān)包和一些通用工具包。

其次,Catalina類加載器負(fù)責(zé)只有Tomcat應(yīng)用服務(wù)器內(nèi)部可見的類,這些類對(duì)Web應(yīng)用不可見。比如,想實(shí)現(xiàn)自己的會(huì)話存儲(chǔ)方案,而且該方案依賴了一些第三方包,當(dāng)然是不希望這些包對(duì)Web應(yīng)用可見,這時(shí)可以配置server.load,創(chuàng)建獨(dú)立的Catalina類加載器。

再次,Shared類復(fù)雜加載Web應(yīng)用共享類,這些類tomcat服務(wù)器不會(huì)依賴

3.Tomcat源碼分析

3.1 CatalinClassLoader

首先來看看Tomcat的類加載器的繼承結(jié)構(gòu)

可以看到繼承的結(jié)構(gòu)和我們上面所寫的類加載器的結(jié)構(gòu)不同。

大家需要注意雙親委派機(jī)制并不是通過繼承來實(shí)現(xiàn)的,而是相互之間組合而形成的。

所以AppClassLoader沒有繼承自 ExtClassLoader,WebappClassLoader也沒有繼承自AppClassLoader。

至于Common ClassLoader ,Shared ClassLoader,Catalina ClassLoader則是在啟動(dòng)時(shí)初始化的三個(gè)不同名字的URLClassLoader。

先來看看Bootstrap#init()方法。init方法會(huì)調(diào)用initClassLoaders,同樣也會(huì)將Catalina ClassLoader設(shè)置到當(dāng)前線程設(shè)置到當(dāng)前線程,進(jìn)入initClassLoaders來看看。

    private void initClassLoaders() {try {    // 創(chuàng)建 commonLoader  catalinaLoader sharedLoader    commonLoader = createClassLoader("common", null);    if (commonLoader == null) {// no config file, default to this loader - we might be in a "single" env.commonLoader = this.getClass().getClassLoader();    }    // 默認(rèn)情況下 server.loader 和 shared.loader 都為空則會(huì)返回 commonLoader 類加載器    catalinaLoader = createClassLoader("server", commonLoader);    sharedLoader = createClassLoader("shared", commonLoader);} catch (Throwable t) {    handleThrowable(t);    log.error("Class loader creation threw exception", t);    System.exit(1);}    }

我們可以看到在initClassLoaders()方法中完成了CommonClassLoader, CatalinaClassLoader,和SharedClassLoader的創(chuàng)建,而且進(jìn)入到createClassLoader方法中。

可以看到這三個(gè)基礎(chǔ)類加載器所加載的資源剛好對(duì)應(yīng)conf/catalina.properties中的common.loader,server.loader,shared.loader

3.2 層次結(jié)構(gòu)

Common/Catalina/Shared ClassLoader的創(chuàng)建好了之后就會(huì)維護(hù)相互之間的組合關(guān)系

其實(shí)也就是設(shè)置了父加載器

3.3 具體的加載過程

源碼比較長,直接進(jìn)入到 WebappClassLoaderBase中的 LoadClass方法

@Override    public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {synchronized (getClassLoadingLock(name)) {    if (log.isDebugEnabled()) {log.debug("loadClass(" + name + ", " + resolve + ")");    }    Class<?> clazz = null;    // Log access to stopped class loader    checkStateForClassLoading(name);    // (0) Check our previously loaded local class cache    // 檢查WebappClassLoader中是否加載過此類    clazz = findLoadedClass0(name);    if (clazz != null) {if (log.isDebugEnabled()) {    log.debug("  Returning class from cache");}if (resolve) {    resolveClass(clazz);}return clazz;    }    // (0.1) Check our previously loaded class cache    // 如果第一步?jīng)]有找到,則繼續(xù)檢查JVM虛擬機(jī)中是否加載過該類    clazz = findLoadedClass(name);    if (clazz != null) {if (log.isDebugEnabled()) {    log.debug("  Returning class from cache");}if (resolve) {    resolveClass(clazz);}return clazz;    }    // (0.2) Try loading the class with the bootstrap class loader, to prevent    //       the webapp from overriding Java SE classes. This implements    //       SRV.10.7.2    // 如果前兩步都沒有找到,則使用系統(tǒng)類加載該類(也就是當(dāng)前JVM的ClassPath)。    // 為了防止覆蓋基礎(chǔ)類實(shí)現(xiàn),這里會(huì)判斷class是不是JVMSE中的基礎(chǔ)類庫中類。    String resourceName = binaryNameToPath(name, false);    ClassLoader javaseLoader = getJavaseClassLoader();    boolean tryLoadingFromJavaseLoader;    try {// Use getResource as it won"t trigger an expensive// ClassNotFoundException if the resource is not available from// the Java SE class loader. However (see// https://bz.apache.org/bugzilla/show_bug.cgi?id=58125 for// details) when running under a security manager in rare cases// this call may trigger a ClassCircularityError.// See https://bz.apache.org/bugzilla/show_bug.cgi?id=61424 for// details of how this may trigger a StackOverflowError// Given these reported errors, catch Throwable to ensure any// other edge cases are also caughtURL url;if (securityManager != null) {    PrivilegedAction<URL> dp = new PrivilegedJavaseGetResource(resourceName);    url = AccessController.doPrivileged(dp);} else {    url = javaseLoader.getResource(resourceName);}tryLoadingFromJavaseLoader = (url != null);    } catch (Throwable t) {// Swallow all exceptions apart from those that must be re-thrownExceptionUtils.handleThrowable(t);// The getResource() trick won"t work for this class. We have to// try loading it directly and accept that we might get a// ClassNotFoundException.tryLoadingFromJavaseLoader = true;    }    if (tryLoadingFromJavaseLoader) {try {    clazz = javaseLoader.loadClass(name);    if (clazz != null) {if (resolve) {    resolveClass(clazz);}return clazz;    }} catch (ClassNotFoundException e) {    // Ignore}    }    // (0.5) Permission to access this class when using a SecurityManager    if (securityManager != null) {int i = name.lastIndexOf(".");if (i >= 0) {    try {securityManager.checkPackageAccess(name.substring(0,i));    } catch (SecurityException se) {String error = sm.getString("webappClassLoader.restrictedPackage", name);log.info(error, se);throw new ClassNotFoundException(error, se);    }}    }    // 檢查是否 設(shè)置了delegate屬性,設(shè)置為true,那么就會(huì)完全按照J(rèn)VM的"雙親委托"機(jī)制流程加載類。    boolean delegateLoad = delegate || filter(name, true);    // (1) Delegate to our parent if requested    if (delegateLoad) {if (log.isDebugEnabled()) {    log.debug("  Delegating to parent classloader1 " + parent);}try {    clazz = Class.forName(name, false, parent);    if (clazz != null) {if (log.isDebugEnabled()) {    log.debug("  Loading class from parent");}if (resolve) {    resolveClass(clazz);}return clazz;    }} catch (ClassNotFoundException e) {    // Ignore}    }    // (2) Search local repositories    // 若是沒有委托,則默認(rèn)會(huì)首次使用WebappClassLoader來加載類。通過自定義findClass定義處理類加載規(guī)則。    // findClass()會(huì)去Web-INF/classes 目錄下查找類。    if (log.isDebugEnabled()) {log.debug("  Searching local repositories");    }    try {clazz = findClass(name);if (clazz != null) {    if (log.isDebugEnabled()) {log.debug("  Loading class from local repository");    }    if (resolve) {resolveClass(clazz);    }    return clazz;}    } catch (ClassNotFoundException e) {// Ignore    }    // (3) Delegate to parent unconditionally    // 若是WebappClassLoader在/WEB-INF/classes、/WEB-INF/lib下還是查找不到class,    // 那么無條件強(qiáng)制委托給System、Common類加載器去查找該類。    if (!delegateLoad) {if (log.isDebugEnabled()) {    log.debug("  Delegating to parent classloader at end: " + parent);}try {    clazz = Class.forName(name, false, parent);    if (clazz != null) {if (log.isDebugEnabled()) {    log.debug("  Loading class from parent");}if (resolve) {    resolveClass(clazz);}return clazz;    }} catch (ClassNotFoundException e) {    // Ignore}    }}throw new ClassNotFoundException(name);    }

Web應(yīng)用類加載器默認(rèn)的加載順序是:

  • (1).先從緩存中加載;
  • (2).如果沒有,則從JVM的Bootstrap類加載器加載;
  • (3).如果沒有,則從當(dāng)前類加載器加載(按照WEB-INF/classes、WEB-INF/lib的順序);
  • (4).如果沒有,則從父類加載器加載,由于父類加載器采用默認(rèn)的委派模式,所以加載順序是AppClassLoader、Common、Shared。

tomcat提供了delegate屬性用于控制是否啟用java委派模式,默認(rèn)false(不啟用),當(dāng)設(shè)置為true時(shí),tomcat將使用java的默認(rèn)委派模式,這時(shí)加載順序如下:

  • (1).先從緩存中加載;
  • (2).如果沒有,則從JVM的Bootstrap類加載器加載;
  • (3).如果沒有,則從父類加載器加載,加載順序是AppClassLoader、Common、Shared。
  • (4).如果沒有,則從當(dāng)前類加載器加載(按照WEB-INF/classes、WEB-INF/lib的順序)

以上就是Tomcat Catalina為什么不new出來原理解析的詳細(xì)內(nèi)容,更多關(guān)于Tomcat Catalina原理的資料請(qǐng)關(guān)注其它相關(guān)文章!

標(biāo)簽: Tomcat
主站蜘蛛池模板: 日韩精品一区二区三区在线观看 | 蜜桃一区二区 | 99国产精品99久久久久久 | 资源av | 国内精品视频一区二区三区 | 色欧美片视频在线观看 | 国产在线观看二区 | 欧美另类一二三四 | 综合五月网 | 国产成人高清 | 一区二区三区免费 | 精品91在线| 午夜色播 | 狠狠色综合色综合网络 | 亚洲天堂久 | 欧美三及片| 午夜亚洲| 日韩电影三级 | 草草网站| 中文字幕亚洲欧美日韩在线不卡 | 免费看a| 91视频国内 | 日韩三及片 | 久久国产精品一区 | 亚洲欧美日韩电影 | 91精品视频在线播放 | 一级a毛片 | 国产精品亚洲一区 | 国产日产精品一区二区三区四区 | 成年人视频在线观看免费 | 日韩在线永久免费播放 | 91精品一区二区三区久久久久久 | 亚洲一区二区免费视频 | 午夜午夜精品一区二区三区文 | 日韩免费av网站 | 日韩视频免费 | 免费在线黄色av | 国产黄色一级片 | 国产3区 | 精品免费 | 亚洲国产精品久久 | 久久九| 国产精品久久久久aaaa九色 | 91在线视频免费观看 | 在线播放一区二区三区 | 91在线免费视频 | 狠狠天天| 中国一级毛片 | 欧美 日本 国产 | 久久aⅴ国产欧美74aaa | 欧美三级视频在线播放 | 人妖 丝袜 另类 亚洲 | 国产中文视频 | 日韩性猛交 | 亚洲成人影院在线观看 | 亚洲乱码一区二区三区在线观看 | 先锋av资源在线 | 日韩午夜 | 日韩免费片 | 亚洲成人一区二区三区 | 成人h动漫免费观看网站 | 国产日韩精品一区二区在线观看播放 | 午夜天堂精品久久久久 | 日日操夜夜 | 免费av电影在线观看 | 国色天香成人网 | 日韩不卡在线 | 亚洲精品粉嫩美女一区 | 欧美色综合一区二区三区 | 国产精品久久久久aaaa九色 | 久草在线在线精品观看 | 人人干操 | hd国产人妖ts另类视频 | 久久综合伊人77777 | 久草视频首页 | 中文字幕成人 | 波多野结衣av中文字幕 | 亚洲福利小视频 | 蜜桃精品视频在线 | 色69av| 91碰碰 | 91麻豆精品国产91久久久资源速度 | 天天宗合网| 亚洲成人精品网 | 国产精品美女 | 欧美精品一区二区三区四区 | 免费一级在线观看 | 久久精品中文 | 欧美成人a | 精品久久久免费视频 | 毛片在线看片 | 欧美二区三区 | 成人一区二区三区久久精品嫩草 | 国产精品免费一区二区三区四区 | 日韩中字幕 | 在线91| 97视频免费在线观看 | 五月天狠狠爱 | 日韩一片 | 亚洲午夜在线 | 精品一区二区三区四区视频 | 亚洲精品四区 | 亚洲午夜精品一区二区三区 | 精品久久久久久久久久久久 | 超碰美女 | 在线色网 | 久久久国产一区二区三区 | 亚洲视频1区 | 欧美一级毛片久久99精品蜜桃 | 久在线看| 91成人免费在线观看 | 亚洲精品久久 | 欧美日韩国产欧美 | 中文字幕在线欧美 | 欧美黑人xxx | 精品国产91亚洲一区二区三区www | 国外成人在线视频网站 | 成年人在线看 | 天天爽天天干 | 成人午夜视频在线观看 | 一区二区在线视频免费观看 | 91社区影院 | 久久久久国产视频 | 一区二区三区回区在观看免费视频 | 国产精品视频播放 | 欧美激情一区二区三区四区 | 中国一级毛片免费 | 精品国产91乱码一区二区三区 | 成人av免费观看 | 久久不卡| 国产精品777一区二区 | 久久久久久91| 99精品欧美一区二区三区综合在线 | 亚洲国产精品人人爽夜夜爽 | 欧美久久视频 | 午夜精品一区二区三区在线视频 | 精品中文在线 | 国产精品高清一区二区 | 国产综合精品一区二区三区 | 亚洲一区二区三区在线免费观看 | 思九九爱九九 | 99在线观看 | 五月天婷婷精品 | 亚洲 成人 av | 99影视 | 日韩第一区 | 日韩欧美一区二区三区免费观看 | 老牛嫩草一区二区三区眼镜 | 国产精品美女久久久久久久久久久 | 欧美一区二区精品 | 一区二区三区视频在线免费观看 | 天天亚洲综合 | 思九九爱九九 | 国产精品日本一区二区不卡视频 | 国产一区二区三区在线 | 国产高清视频在线 | 欧洲尺码日本国产精品 | 97久久精品午夜一区二区 | 成人国产在线观看 | 久久久久久久99精品免费观看 | 青娱乐国产视频 | 日本黄色一级片免费看 | 日本a在线 | 犬夜叉在线观看 | 91视视频在线观看入口直接观看 | 91视频一区二区三区 | 国产九九精品 | 免费在线成人 | 亚洲欧洲综合av | 一区二区日韩 | 国产一区二区精品在线观看 | 夜夜草天天干 | 国产午夜精品久久 | 亚洲lesbianxxxxhd| 一级二级在线观看 | 国产一区二区三区久久久 | www.五月婷婷 | 欧美精三区欧美精三区 | 韩日精品一区 | 免费欧美视频 | 国产女人高潮视频在线观看 | 青草视频网站 | 免费人成电影 | 99精品福利视频 | 91看片在线观看 | 国产男女爽爽爽免费视频 | 国产精品色婷婷久久58 | se在线播放| 亚洲性人人天天夜夜摸 | 成年人精品视频在线观看 | 色综合天天天天做夜夜夜夜做 | 在线中文视频 | 亚洲伊人成人 | 91国自产精品中文字幕亚洲 | 久久另类ts人妖一区二区 | 蜜桃视频网站在线观看 | av片免费| 国产精品第一区 | 欧美第一视频 | 亚洲欧美日韩在线一区二区三区 | 午夜免费小视频 | 99成人在线视频 | 国产精品美女久久久久久久久久久 | 成人不卡在线观看 | 免费黄色网址在线播放 | 亚洲嫩草 | 成人亚洲精品 | 成人免费高清 | 国产精品久久久久久久久久 | 99国产精品久久久久久久成人热 | 欧美在线综合 | 欧美精品一区在线观看 | 91视频www| 91精品国产欧美一区二区成人 | 国产成人无遮挡在线视频 | 亚洲一区二区av | japan国产精选videos | www久| 日韩精品免费在线视频 | 欧美日韩在线观看一区二区 | 99re6在线视频精品免费 | 亚洲午夜av | 国产精品久久久久久久久久久杏吧 | 欧美a网| 日本不卡高字幕在线2019 | 欧美一级免费 | 丁香五月网久久综合 | 欧洲亚洲精品久久久久 | 亚洲精品久久久久久久久久久 | 台湾佬成人 | av手机在线电影 | 亚洲精品久久久 | 欧美日本国产欧美日本韩国99 | 爱爱免费视频网站 | 精品一区二区久久久久久久网站 | 午夜社区 | 日韩精品在线一区 | 国产毛片毛片 | 久久久久久亚洲精品 | 一区二区中文字幕在线观看 | 日本久久久久久久久 | 国产精品久久久久久久久小说 | 日韩av免费在线播放 | 国产韩国精品一区二区三区 | 久久久香蕉 | 日韩中文在线 | 中文字幕视频在线免费观看 | 成人欧美一区二区三区黑人孕妇 | 欧美精品国产精品 | 亚洲视频在线一区 | 欧美成人一区二免费视频软件 | 国产一区二区在线播放 | 91久久精品国产 | 永久精品 | 99国产精品久久久久久久 | 亚洲精品视 | 一区二区三区国产亚洲网站 | 一区二区三区四区精品 | 欧美在线观看一区二区 | 黄色a三级 | 日韩精品一二三区 | 国产精品自产拍在线观看 | 亚洲色图p | 精品国产一区二区三区性色av | 国产午夜久久 | 日韩av黄色 | 蜜桃av人人夜夜澡人人爽 | 国产在线精品一区二区三区 | 亚洲444kkkk在线观看最新 | 91极品国产| 久久免费视频国产 | 久久久精品 | 美女超碰在线 | 亚洲人成中文字幕在线观看 | 日日干天天干 | 亚洲二区在线视频 | 亚洲 欧美 日韩在线 | 欧美在线国产 | 成人午夜电影在线 | 久久精品免费一区二区 | 91p在线观看 | 日韩精品视频在线 | a√免费视频 | 久久亚洲免费 | 三级成人在线 | 国产婷婷精品av在线 | 国产在线成人 | 免费看特级毛片 | 一区二区在线播放视频 | 91av在 | 精品久久久久国产免费 | 国产视频二 | 亚洲欧美日韩一区二区 | 欧美国产一区二区 | av成人毛片 | 亚洲视频在线观看 | 国产日韩欧美亚洲 | 欧美日韩不卡 | 欧美精品中文字幕久久二区 | 一级片av | 免费观看的av | 成人亚洲区 | 日韩午夜一级片 | 国产欧美日韩在线 | 国产深夜视频在线观看 | 精品影院| 日韩中文视频 | av在线一区二区 | 欧美久久久网站 | 五月婷婷在线观看视频 | 综合久久久 | 成人免费福利 | 日韩一级在线免费观看 | 免费黄色片在线观看 | 91在线免费观看 | a级毛片免费高清视频 | 欧美 日韩 亚洲 一区 | 国产亚洲一区二区三区在线观看 | 中文字幕日韩视频 | 久草热8精品视频在线观看 亚洲区在线 | 自拍视频在线 | 深夜福利亚洲 | 久久99国产精品久久99大师 | 久草免费在线 | 九九热视频在线 | 成人精品 | 亚洲一区二区在线电影 | 亚洲精品一区二区网址 | 日韩福利视频 | a一级黄| 亚洲精品一区二区三区樱花 | 精品一区在线视频 | 免费一级毛片 | 国产精品人人做人人爽 | a国产在线观看 | 欧美精品理论片大全 | 欧美多人在线 | 久久中文字幕一区二区三区 | 国产精品日产欧美久久久久 | 免费在线日韩 | 日韩素人在线 | 呦一呦二在线精品视频 | 日韩av在线不卡 | 亚洲午夜精品在线观看 | 狠狠久| 日本黄色片免费看 | 日韩欧美高清dvd碟片 | 久久久久久成人 | 欧美一区 | 久久人人爽人人爽人人片av不 | 羞羞视频网站在线免费观看 | 亚洲a在线观看 | 四虎影院最新网站 | 精品国产乱码久久久久久影片 | 午夜视频在线播放 | 日韩三级av在线 | av黄色在线 | 一区二区三区精品视频免费看 | 美女在线视频一区二区 | 国产精品一区二区在线观看 | 久久精品久久久久 | 一区二区亚洲 | 欧美二区在线观看 | 91在线观看免费 | 成人免费在线视频 | 国产高潮失禁喷水爽网站 | 欧美日韩精品一区二区在线播放 | se在线播放| 婷婷精品| 国产美女在线播放 | 亚洲av毛片 | 久久久午夜爽爽一区二区三区三州 | 色综合天天 | 成人精品 | 欧美男人天堂 | 99成人| 99精品电影 | 高清国产一区 | 成人亚洲| 成人免费福利 | 久草久草久草 | 国产伊人av | 国产成人久久 | 麻豆沈芯语在线观看 | 国产高清一区二区 | 国产成人精品一区二区三区视频 | 亚洲成人一区二区三区 | 国产精品99久久久久久久vr | 午夜一级毛片 | 亚洲在线观看免费视频 | 午夜在线 | 99精品国产在热久久 | 女人夜夜春高潮爽a∨片传媒 | 久久se精品一区精品二区 | 一区二区三区精品视频 | 久久另类ts人妖一区二区 | 国产精品一区二区三区在线播放 | 日本免费一区二区视频 | 亚洲一区久久久 | 日韩一区二区精品视频 | 自拍偷拍一区二区三区 | 奇米成人 | 在线免费观看色视频 | 欧美,日韩,国产精品免费观看 | 蜜桃视频麻豆女神沈芯语免费观看 | 精品国产仑片一区二区三区 | 亚洲一区二区国产 | 国产精品一区久久久久 | 在线成人亚洲 | 亚洲综合无码一区二区 | 午夜网 | 国产精久久 | 一区二区三区日韩 | 精品免费 | www国产亚洲精品久久网站 | 日韩美女av在线 | 亚洲一区中文字幕在线观看 | 久精品视频 | 欧美成人猛片aaaaaaa | 午夜精品久久久久久久星辰影院 | 欧美影院 | 91国内外精品自在线播放 | 日本在线免费 | 久久久久久久久久久久久av | 午夜免费视频 | 亚洲精品二区三区 | 久久91精品 | 亚洲精品一区二三区不卡 | 91在线观看视频 | 中文字幕 国产精品 | 免费v片| 在线视频一区二区 | 免费看片国产 | av一区二区三区四区 | 精品一级 | 欧美一级爆毛片 | 久久亚洲一区二区 | 国产一区高清 | 欧美日韩国产精品 | 亚洲精品日韩综合观看成人91 | 韩国一区二区视频 | 美女久久 | 欧美日韩免费一区二区三区 | 亚洲色图偷拍视频 | 亚洲精品一区二区在线 | 亚洲一二三| 成年人视频在线免费观看 | 久久视频一区 | 国产精品久久久久久久久久久久久久 | 久久亚洲综合 | 夜夜操天天干, | 久久精品一区二区三区四区 | 欧美福利一区二区三区 | 亚洲国产精品久久久久 | 日韩精品一区二区三区第95 | 国产区在线观看 | 国产成人一区 | 中文字幕在线观看一区二区三区 | 亚洲成人精品在线观看 | 亚洲国产精品一区 | 国产成人精品午夜视频' | 中文在线一区二区 | 九色一区二区 | 日本久草 | 狠狠插天天干 | 一区视频| 大桥未久亚洲精品久久久强制中出 | 成人免费视频 | 欧美视频网站 | 99re免费视频精品全部 | 国产精品久久久久久影院8一贰佰 | 在线观看日韩精品 | 午夜精品久久久久久 | 日韩精品一区二区三区在线 | 一区中文字幕 | 欧美日韩一区二区三区四区 | 久久爱综合 | 国产a级毛片 | 狠狠综合久久 | 粉色午夜视频 | 国产激情视频 | 一级黄色爱爱视频 | 日韩成人精品视频在线观看 | 国产xvideos免费视频播放 | 免费观看成人性生生活片 | 国产精品日本欧美一区二区三区 | 欧美日韩激情四射 | 91在线视频观看 | 涩久久 | 精品国产成人 | 国产精品久久久久无码av | 黄视频网站免费看 | 亚洲aaaaaa特级 | 国产视频福利在线观看 | 午夜爱爱毛片xxxx视频免费看 | a亚洲精品 | 国产精品美女久久久久久久久久久 | 黄色一级免费看 | 国产在线精品一区二区 | 久草视频在线看 | 北条麻妃一区二区三区中文字幕 | 日韩不卡一区二区 | 久久蜜桃精品一区二区三区综合网 | 午夜欧美| 国产精品美女久久久久久久网站 | 欧美天堂| 国产成人综合网 | 狼人狠狠干 | 国产精品美女久久久久aⅴ国产馆 | 黄色毛片av | 国产精品福利在线观看 | 在线播放一区二区三区 | 国产精品二区三区 | 中文在线观看www | 国产高清在线精品 | 亚洲欧美自拍视频 | 俺要去97中文字幕 | 久久9999| 欧美日韩一区二区三区在线电影 | 午夜激情视频在线观看 | 99成人在线视频 | 色久视频| 91破解版在线 | 亚洲 | 福利视频网站 | 午夜男人的天堂 | 看全黄大色黄大片老人做 | 91精品国产91久久久久久吃药 | 久久草视频 | 男人视频网站 | 亚洲精品久久久一区二区三区 | 亚洲一区二区三区四区五区中文 | 亚洲午夜视频在线观看 | 欧美成a | 欧美日韩免费在线 | 播放一级毛片 | 国产精品ssss在线亚洲 | 亚洲一区二区三 | 超碰在线人人 | 日本免费视频在线观看 | a级在线| 中文字幕一区二区三区四区 | 国产在线观看高清 | 国产在线视频a | 日中文字幕在线 | 亚洲国产成人av好男人在线观看 | 久久精品中文字幕 | 密室大逃脱第六季大神版在线观看 | 国产成人精品久久二区二区 | 中文字幕在线精品 | 日韩中文字幕av在线 | 九九久久久 | 色悠久久久 | 日本在线视频一区二区 | 欧美在线二区 | 三级特黄特色视频 | 国产成人av在线 | 亚洲视频在线观看 | www.久久 | 中文字幕国产日韩 | 亚洲风情在线观看 | 欧美中文在线 | 一区二区三区在线视频播放 | 欧美九九九 | 国产精品女同一区二区久久夜 | 99视频在线免费观看 | 国产最新视频在线 | 九九热精品免费视频 | 成年人网站在线免费观看 | 国产精品九九九 | 一区二区在线视频免费观看 | 欧美日韩大片在线观看 | 一区二区三区高清 | 日韩综合一区 | 伊人精品在线 | av在线免费观看网址 | 色综合国产 | 久久久久国产一区二区三区四区 | 国产精品美女视频 | 中文字幕亚洲一区二区三区 | 国产成人精品无人区一区 | 亚洲视频免费观看 | 欧美日韩一区二区三区 | 黄色操视频 | 一区二区三区精品视频 | 毛片在线视频 | 久久久久国产成人精品亚洲午夜 | 91精品国产高清久久久久久久久 | 亚洲精品一区久久久久久 | 国产成人精品亚洲日本在线观看 | 羞羞视频在线免费观看 | 欧美一级视频 | 亚洲成人影院在线观看 | 精品www| 久久精品一区 | 91精品国产91久久久久久久久久久久 | 播放一级黄色片 | 国精产品一区二区三区黑人免费看 | 玖玖久久 | 午夜激情影院 | 欧美日韩中文国产一区发布 | 在线免费观看色视频 | 一区免费在线观看 | 国产精品18| 日本一本在线 | 免费一级毛片 | 伊人激情网| 成人av网页| 国产日韩精品久久 | 日韩专区视频 | 国产精品九九九 | 一区二区三区四区在线 | 欧美亚洲一区 | 美女视频黄色免费 | 欧美一级黄视频 | 精品日韩在线 |