日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

什么是spring_Spring 源码第三弹!EntityResolver 是个什么鬼?

發布時間:2024/7/5 javascript 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是spring_Spring 源码第三弹!EntityResolver 是个什么鬼? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上篇文章和小伙伴們說了 Spring 源碼中 XML 文件的解析流程,本來可以繼續往下走看加載核心類了,但是松哥還是希望能夠慢一點,既然要學就學懂,在 XML 文件解析的過程中還涉及到一些其他的類和概念,因此我就先用幾篇文章介紹一下這些涉及到的概念或者類,然后我們再繼續往下看。

本文要和大家介紹的是上篇文章中涉及到的 EntityResolver 類,看看這個類到底是干嘛用的。

本文是 Spring 源碼系列第四篇,閱讀前面文章有助于更好理解本文:

  • Spring 源碼解讀計劃
  • Spring 源碼第一篇開整!配置文件是怎么加載的?
  • Spring 源碼第二彈!XML 文件解析流程
  • 先來回顧下,在 EntityResolver 這個類在上篇文章哪里出現了。

    我們在講到 doLoadDocument 方法時,在該方法中調用 loadDocument 方法時,傳遞的第二個參數就是一個 EntityResolver 實例,當時我們說這個是用來處理文件的驗證方式的,但是到底是怎么處理的,今天我們就來看下。

    1.XML 驗證模式

    要了解 EntityResolver,就得先來看看 XML 文件驗證模式。

    現在我們大多數情況下可能都是使用 JSON 傳遞數據,XML 使用較少,可能有的小伙伴對 XML 文件的一些規則還不太熟悉,我這里稍微說一下。

    XML 是指可擴展標記語言(eXtensible Markup Language),它是一種標記語言,類似 HTML;XML 標簽沒有被預定義,需要用戶自行定義標簽,也就是 XML 文件中的節點都是用戶自定義的。XML 文件從設計之初就是為了傳輸數據,而非顯示數據。

    一般來說,一個 XML 文件由六個部分組成:

    • 文檔生命
    • 元素
    • 屬性
    • 注釋
    • CDATA 區
    • 處理指令

    雖然說 XML 文件本身是沒有預定義 XML 標簽,但是當 XML 文件作為框架的配置時,對于 XML 標簽還是要有一定的約束,否則每個人都按照自己的喜好定義 XML 標簽,框架就沒法讀取這樣的 XML 文件了。

    在 XML 技術中,開發者可以通過一個文檔來約束一個 XML 的文檔中的標簽,這個文檔稱之為約束。遵循 XML 語法的 XML 我們稱之為格式良好的 XML,而遵循 XML 約束的 XML 我們稱之為有效的 XML。XML 約束文檔主要定義了在 XML 中允許出現的元素名稱、屬性及元素出現的順序等等。

    要想約束 XML 標簽,有兩種方式:

  • DTD
  • Schema
  • DTD(Document Type Definition),全稱為文檔類型定義,一個 DTD 約束文件我們既可以定義在 XML 文件內部,也可以定義一個本地文件,也可以引用一個網絡上的公共的 DTD。

    XML Schema 也是一種用于定義和描述 XML 文檔結構與內容的模式語言,相比于 DTD,Schema 對于名稱空間的支持更加友好,同時也支持更多的數據類型,而且它的約束能力也比較強大,另外還有非常重要的一點是,Schema 文檔本身也是 XML 文檔,而不是像 DTD 一樣使用自成一體的語法。

    所以,Schema 目前在 XML 約束這塊更具備優勢,也在逐漸替代 DTD。

    大家在日常開發中,這兩種約束可能都見過,但是有的人可能沒注意。我給大家簡單舉一個例子。

    早期的 Spring 配置頭部是這樣的(Spring2.x),這就是 DTD 約束:

    <?xml ?version="1.0"?encoding="UTF-8"?>??beans?PUBLIC?"-//SPRING//DTD?BEAN?2.0//EN"??"http://www.springframework.org/dtd/spring-beans-2.0.dtd">????????

    現在大家看到的 Spring 配置頭部一般都是這樣,這就是 Schema 約束:

    <?xml ?version="1.0"?encoding="UTF-8"?>

    schema 約束對命名空間有著很好的支持,命名空間可以防止命名沖突,schema 中的名稱空間和約束文件都是成對出現的。

    有了約束,XML 文件中該寫什么不該寫什么就固定下來了,這樣框架才能成功解析出 XML 文件。

    但是大家同時也發現了一個新的問題,無論是 DTD 還是 Schema 約束,給出的約束文件地址都是一個在線地址,這就意味著項目啟動時必須能夠訪問到該在線地址,才能加載到約束文件,如果訪問在線約束文件失敗,那么項目啟動也會失敗。

    為了解決這個問題,框架一般都是將約束文件放在本地的,在本地哪里呢?實際上就在你下載的 jar 包里。以 spring-beans 為例,在下載的 jar 包里有如下兩個文件:

    spring.handlers 文件內容如下:

    http://www.springframework.org/schema/c=org.springframework.beans.factory.xml.SimpleConstructorNamespaceHandlerhttp://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandlerhttp://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler

    這其實一個映射配置,每一個名稱空間對應的處理類在這里進行配置。

    spring.schemas 文件內容如下(部分):

    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-3.1.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-4.0.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-4.1.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-4.2.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans-4.3.xsd=org/springframework/beans/factory/xml/spring-beans.xsdhttp://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans.xsd

    可以看到,各種版本以及沒有版本號的約束文件,都對應了同一個文件,就是 org/springframework/beans/factory/xml/spring-beans.xsd,打開這個文件目錄,我們就可以看到約束文件:

    所以我們雖然在 Spring 的 XML 配置中看到的約束文件是一個在線地址,實際上約束文件是從本地 jar 中讀取的。

    2.兩種解析器

    EntityResolver 就是用來處理 XML 驗證的。我們先來看下 EntityResolver 接口的定義:

    public?interface?EntityResolver?{????public?abstract?InputSource?resolveEntity?(String?publicId,???????????????????????????????????????????????String?systemId)????????throws?SAXException,?IOException;}

    接口中就只有一個方法,就是加載約束文件。在 Spring 中,EntityResolver 的實現類是 DelegatingEntityResolver:

    public?class?DelegatingEntityResolver?implements?EntityResolver?{?public?static?final?String?DTD_SUFFIX?=?".dtd";?public?static?final?String?XSD_SUFFIX?=?".xsd";?private?final?EntityResolver?dtdResolver;?private?final?EntityResolver?schemaResolver;?public?DelegatingEntityResolver(@Nullable?ClassLoader?classLoader)?{??this.dtdResolver?=?new?BeansDtdResolver();??this.schemaResolver?=?new?PluggableSchemaResolver(classLoader);?}?public?DelegatingEntityResolver(EntityResolver?dtdResolver,?EntityResolver?schemaResolver)?{??this.dtdResolver?=?dtdResolver;??this.schemaResolver?=?schemaResolver;?}?@Override?@Nullable?public?InputSource?resolveEntity(@Nullable?String?publicId,?@Nullable?String?systemId)???throws?SAXException,?IOException?{??if?(systemId?!=?null)?{???if?(systemId.endsWith(DTD_SUFFIX))?{????return?this.dtdResolver.resolveEntity(publicId,?systemId);???}???else?if?(systemId.endsWith(XSD_SUFFIX))?{????return?this.schemaResolver.resolveEntity(publicId,?systemId);???}??}??return?null;?}?@Override?public?String?toString()?{??return?"EntityResolver?delegating?"?+?XSD_SUFFIX?+?"?to?"?+?this.schemaResolver?+????"?and?"?+?DTD_SUFFIX?+?"?to?"?+?this.dtdResolver;?}}

    在 DelegatingEntityResolver 類中:

  • 首先通過兩種不同的后綴來區分不同的約束。
  • 然后定義了 dtdResolver 和 schemaResolver 兩個不同的變量,對應的類型分別是 BeansDtdResolver 和 PluggableSchemaResolver,也就是 dtd 和 schema 的約束驗證分別由這兩個類來處理。
  • 在 resolveEntity 方法中,根據解析出來不同的后綴,分別交由不同的 EntityResolver 來處理。resolveEntity 解析中有兩個參數,如果是 dtd 解析的話,publicId 是有值的,如果是 schema 解析,publicId 為 null,而 systemId 則始終指向具體的約束文件。
  • 由于現在大部分都是 schema 約束,所以這里我們就來重點看下 PluggableSchemaResolver 類的實現:

    public?class?PluggableSchemaResolver?implements?EntityResolver?{?public?static?final?String?DEFAULT_SCHEMA_MAPPINGS_LOCATION?=?"META-INF/spring.schemas";?private?static?final?Log?logger?=?LogFactory.getLog(PluggableSchemaResolver.class);?@Nullable?private?final?ClassLoader?classLoader;?private?final?String?schemaMappingsLocation;?@Nullable?private?volatile?Map?schemaMappings;?public?PluggableSchemaResolver(@Nullable?ClassLoader?classLoader)?{??this.classLoader?=?classLoader;??this.schemaMappingsLocation?=?DEFAULT_SCHEMA_MAPPINGS_LOCATION;?}?public?PluggableSchemaResolver(@Nullable?ClassLoader?classLoader,?String?schemaMappingsLocation)?{??Assert.hasText(schemaMappingsLocation,?"'schemaMappingsLocation'?must?not?be?empty");??this.classLoader?=?classLoader;??this.schemaMappingsLocation?=?schemaMappingsLocation;?}?@Override?@Nullable?public?InputSource?resolveEntity(@Nullable?String?publicId,?@Nullable?String?systemId)?throws?IOException?{??if?(logger.isTraceEnabled())?{???logger.trace("Trying?to?resolve?XML?entity?with?public?id?["?+?publicId?+?????"]?and?system?id?["?+?systemId?+?"]");??}??if?(systemId?!=?null)?{???String?resourceLocation?=?getSchemaMappings().get(systemId);???if?(resourceLocation?==?null?&&?systemId.startsWith("https:"))?{????resourceLocation?=?getSchemaMappings().get("http:"?+?systemId.substring(6));???}???if?(resourceLocation?!=?null)?{????Resource?resource?=?new?ClassPathResource(resourceLocation,?this.classLoader);????try?{?????InputSource?source?=?new?InputSource(resource.getInputStream());?????source.setPublicId(publicId);?????source.setSystemId(systemId);?????if?(logger.isTraceEnabled())?{??????logger.trace("Found?XML?schema?["?+?systemId?+?"]?in?classpath:?"?+?resourceLocation);?????}?????return?source;????}????catch?(FileNotFoundException?ex)?{?????if?(logger.isDebugEnabled())?{??????logger.debug("Could?not?find?XML?schema?["?+?systemId?+?"]:?"?+?resource,?ex);?????}????}???}??}??return?null;?}?private?Map?getSchemaMappings()?{??Map?schemaMappings?=?this.schemaMappings;??if?(schemaMappings?==?null)?{???synchronized?(this)?{????schemaMappings?=?this.schemaMappings;????if?(schemaMappings?==?null)?{?????try?{??????Properties?mappings?=????????PropertiesLoaderUtils.loadAllProperties(this.schemaMappingsLocation,?this.classLoader);??????schemaMappings?=?new?ConcurrentHashMap<>(mappings.size());??????CollectionUtils.mergePropertiesIntoMap(mappings,?schemaMappings);??????this.schemaMappings?=?schemaMappings;?????}?????catch?(IOException?ex)?{??????throw?new?IllegalStateException(????????"Unable?to?load?schema?mappings?from?location?["?+?this.schemaMappingsLocation?+?"]",?ex);?????}????}???}??}??return?schemaMappings;?}?@Override?public?String?toString()?{??return?"EntityResolver?using?schema?mappings?"?+?getSchemaMappings();?}}
  • 在這個類中,一上來先通過 DEFAULT_SCHEMA_MAPPINGS_LOCATION 變量定義了 spring.schemas 文件的位置。
  • getSchemaMappings 方法則是將 spring.schemas 文件中的內容讀取成一個 Map 加載進來。
  • 在 resolveEntity 方法中,根據 systemId 找到文件路徑,systemId 是 http://www.springframework.org/schema/beans/spring-beans.xsd 格式,文件路徑則是 org/springframework/beans/factory/xml/spring-beans.xsd,如果第一次沒有加載到,就把用戶的 https: 替換成 http: 再去加載。
  • 有了文件路徑,接下來調用 ClassPathResource 去獲取一個 Resource 對象,這塊可以參考本系列第二篇,這里我就不再贅述。
  • 最后構造一個 InputSource 返回即可。
  • 在上篇文章中,我們獲取 EntityResolver 是通過 getEntityResolver 方法來獲取的:

    protected?EntityResolver?getEntityResolver()?{?if?(this.entityResolver?==?null)?{??//?Determine?default?EntityResolver?to?use.??ResourceLoader?resourceLoader?=?getResourceLoader();??if?(resourceLoader?!=?null)?{???this.entityResolver?=?new?ResourceEntityResolver(resourceLoader);??}??else?{???this.entityResolver?=?new?DelegatingEntityResolver(getBeanClassLoader());??}?}?return?this.entityResolver;}

    這里最終返回的是 ResourceEntityResolver,ResourceEntityResolver 繼承自 DelegatingEntityResolver,當調用 resolveEntity 方法時,也是先調用父類的該方法,進行處理,如果父類方法處理成功了,就直接返回父類方法給出的結果,如果父類方法處理失敗了,則在 ResourceEntityResolver 中通過資源的相對路徑再次嘗試加載。

    3.小結

    好啦,經過上面的介紹,相信大家對于 XMl 約束和 EntityResolver 都有一定的了解啦。

    后記

    本文剛寫完,微信群里就有小伙伴問了一個一模一樣的問題:

    松哥不禁感嘆,源碼并非離我們很遠的東西,閱讀源碼可以有效解決我們日常開發中一些實實在在的問題!

    如果覺得有收獲,記得點個在看鼓勵下松哥哦~搜索微信公眾號【江南一點雨】,回復 888 獲取超 17k star 開源項目學習文檔~

    總結

    以上是生活随笔為你收集整理的什么是spring_Spring 源码第三弹!EntityResolver 是个什么鬼?的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产精品精品国产色婷婷 | 在线观看视频国产 | 免费男女羞羞的视频网站中文字幕 | 亚洲一区网| 久久成人视屏 | 美女视频是黄的免费观看 | 免费观看视频的网站 | 久久综合久久综合久久 | 一本色道久久综合亚洲二区三区 | 一区二区伦理 | 日韩av高清 | 亚洲欧美婷婷六月色综合 | 香蕉97视频观看在线观看 | 久久久久久久99精品免费观看 | 久久五月天色综合 | 四虎在线免费观看 | 99精品热视频 | a视频在线播放 | 成人黄视频 | 国产精品美女视频 | 在线a人v观看视频 | 午夜av一区二区三区 | 麻豆va一区二区三区久久浪 | 亚洲精品在线观看不卡 | 男女精品久久 | 天堂av免费 | 成片免费观看视频 | 欧美一区二区免费在线观看 | 激情欧美一区二区三区免费看 | 六月激情久久 | 99九九免费视频 | 国产精品ⅴa有声小说 | 久久精品99国产 | 欧美一进一出抽搐大尺度视频 | 久久婷婷一区 | 欧美日本不卡高清 | 欧美婷婷综合 | 国产精品初高中精品久久 | 国产香蕉久久精品综合网 | 美女在线观看网站 | 中文字幕在线国产精品 | 日韩av电影中文字幕 | 91av大全 | 看片一区二区三区 | 欧美激情视频一区二区三区免费 | 91精品国产自产老师啪 | 精品一区二区综合 | 国产伦精品一区二区三区无广告 | 久久久999免费视频 日韩网站在线 | 久久精品一二三 | 日韩午夜精品 | 国产真实精品久久二三区 | 成人一级| 亚洲午夜不卡 | 日韩精品一卡 | 久久丝袜视频 | 在线观看理论 | 在线导航av| 日韩欧美中文 | 亚洲区色 | 日韩av在线免费看 | 亚洲成人在线免费 | 91精品国产99久久久久久红楼 | 日韩精品在线观看av | 超碰成人免费电影 | 在线v | 国产精品久久久久久久久久不蜜月 | 亚洲精品在线观看av | 久久久久亚洲精品男人的天堂 | 伊人伊成久久人综合网站 | 97在线观看免费观看 | 中文字幕在线看片 | 免费看成年人 | 91视频在线播放视频 | 96在线 | 伊人婷婷激情 | 麻豆小视频在线观看 | 国产精品一区二区在线观看 | 日韩久久久久久久久久 | 亚洲在线视频免费 | 日p视频在线观看 | 日韩动漫免费观看高清完整版在线观看 | 国产毛片久久久 | 亚洲精品在线观看av | 色在线高清 | 久久久久久国产一区二区三区 | 国产黄免费看 | 精品国产一区二区三区久久久 | 国产日韩欧美视频在线观看 | 99自拍视频在线观看 | 在线亚洲天堂网 | 四虎在线永久免费观看 | 色综合网在线 | 成人午夜电影网站 | 91人人爱 | 黄色毛片网站在线观看 | 精品一二三四五区 | 国产精品成人免费精品自在线观看 | 91人人澡人人爽人人精品 | www.天天干| 国产精品永久免费观看 | 日韩毛片精品 | 中文字幕精品三区 | 日韩色综合 | 日韩av美女| 日韩精品免费一线在线观看 | 在线免费黄色av | 日日爽天天爽 | 国产99久久九九精品 | 久久久久亚洲精品男人的天堂 | 91高清视频免费 | 在线观看一二三区 | 色视频一区 | 欧美一级性生活视频 | 免费无遮挡动漫网站 | 久久久免费看视频 | 成人在线免费看视频 | 人人射人人| 久久久毛片 | 欧美片一区二区三区 | 99看视频在线观看 | 97碰在线 | 国内三级在线观看 | 久久精品成人 | 欧美日韩不卡一区二区三区 | 久久tv| 黄色一级性片 | 91在线视频播放 | www视频在线播放 | 97超碰人人模人人人爽人人爱 | 欧美一区二区三区在线播放 | 99在线热播精品免费99热 | 一区二区视频电影在线观看 | 特黄色大片 | 色av婷婷 | 久操视频在线观看 | 国产在线精品二区 | 婷婷网站天天婷婷网站 | 久久婷婷亚洲 | 久久av网址 | 国产一级二级三级视频 | 免费网站看v片在线a | 中文字幕免费播放 | 夜夜干夜夜| www91在线 | 91黄色免费网站 | 成人国产一区二区 | 人人干人人搞 | 国产精品系列在线 | 日本一区二区高清不卡 | 免费av电影网站 | japanese黑人亚洲人4k | 国产黄色av | 久久婷婷网 | 久久免费视频一区 | 福利一区在线视频 | 日韩黄色中文字幕 | 91精品国产欧美一区二区 | 成人综合免费 | 伊人春色电影网 | 色噜噜在线观看视频 | 91九色网站| 可以免费观看的av片 | 亚洲日日射 | 久久丝袜视频 | 欧美日韩另类视频 | 亚洲1级片| 狠狠色丁香婷婷综合基地 | 成人超碰97| 91大片成人网| 狠狠88综合久久久久综合网 | 久久手机在线视频 | 久久国产经典视频 | 日日干天天 | 又黄又爽又湿又无遮挡的在线视频 | av免费黄色 | 99热国产在线观看 | 成年人电影免费在线观看 | 国产精品一区一区三区 | 91麻豆精品国产91久久久无限制版 | 精品久久一| 精品国产网址 | 国产精品国产自产拍高清av | 成人影音av| 999视频在线观看 | 婷婷亚洲五月色综合 | 少妇搡bbbb搡bbb搡69 | 国产免费久久久久 | 成人免费视频观看 | 一区二区三区在线观看中文字幕 | 久久久久久激情 | 亚洲经典视频 | 久久久久久久久久久久99 | 久久久久www | 欧美性生活久久 | 国内精品久久久久久久久久久 | 欧美另类xxxxx | 久久成人国产精品一区二区 | 亚洲国产日韩av | 狠狠色丁香婷婷综合久小说久 | 五月激情姐姐 | 国产精品99久久久久久小说 | 97综合在线 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 国产亚洲欧洲 | 精品999久久久| 婷婷视频在线观看 | 最近免费中文字幕大全高清10 | 天天射网站 | 久久玖| 久久精品视频在线 | 麻豆久久久久 | 成人免费视频a | 丰满少妇在线观看网站 | 国产精品99久久久久人中文网介绍 | 久久久久久久久久免费视频 | 久久午夜精品 | 不卡视频国产 | 久草在线视频网站 | 免费在线观看黄网站 | 精品国产99国产精品 | 欧美性脚交 | 亚洲视频免费在线 | 亚洲电影在线看 | 亚洲乱码精品 | 亚洲一片黄 | 久久99久国产精品黄毛片入口 | 91精品久久久久久久91蜜桃 | 最近乱久中文字幕 | 五月婷婷黄色网 | 波多野结衣在线视频免费观看 | 色999精品 | 中文字幕免费 | 中文字幕在线观看一区 | 中文字幕黄色网址 | 日韩黄视频 | 久久伊人精品天天 | 最新日本中文字幕 | 精品一区免费 | 亚洲精品日韩在线观看 | 久久久国产一区二区 | 在线观看视频99 | 极品美女被弄高潮视频网站 | 久久理论电影网 | 亚洲激情av| 天天综合色 | 在线观看视频日韩 | 久久久久国产成人免费精品免费 | 国产 欧美 在线 | 日日夜夜天天射 | 国产精品综合久久久 | 狠狠躁日日躁狂躁夜夜躁av | 亚洲成人黄色网址 | 97超碰网 | 91麻豆操 | 久久在线一区 | 亚洲国产影院av久久久久 | 国产又粗又猛又黄又爽视频 | 国产原创在线观看 | 亚洲精品在线免费播放 | 亚洲精品欧美精品 | 中文av一区二区 | 欧美精品久久久久久久免费 | 欧美电影黄色 | 欧美伦理一区二区 | 欧美日韩国产在线一区 | 成人免费网视频 | 丁香婷婷社区 | 久久91久久久久麻豆精品 | 亚洲成年人av | 激情小说久久 | 激情在线网 | 精品美女久久 | 国产婷婷vvvv激情久 | www.精选视频.com | 国产一区网址 | 97涩涩视频 | 免费合欢视频成人app | 国产一级在线免费观看 | 午夜影院一级 | 亚洲综合欧美精品电影 | 色多视频在线观看 | 国产精品一区专区欧美日韩 | 国产一区免费观看 | 亚洲精品久久久久久国 | 91视频91色| 久久精品男人的天堂 | 免费av网址大全 | av电影中文| 国产精品久久久久影院 | 国产高清av免费在线观看 | 日日操天天爽 | 国产一区免费在线观看 | 免费看短 | 婷婷丁香花 | 久久综合九色综合久99 | 天天做日日做天天爽视频免费 | 久久免费成人精品视频 | 91在线小视频 | 日日夜精品 | 亚洲91精品在线观看 | 狠狠的操你 | 91超级碰碰 | 日本特黄特色aaa大片免费 | 99久久精品日本一区二区免费 | 欧洲精品在线视频 | 日韩欧美在线不卡 | 深夜男人影院 | 日韩有码在线观看视频 | 亚洲精品乱码久久久久久久久久 | 99在线精品视频 | 日日夜操 | 国内三级在线观看 | 亚洲经典在线 | www在线观看视频 | 天堂av免费观看 | 香蕉久久久久 | 亚洲h在线播放在线观看h | 久久a免费视频 | 国产91对白在线播 | 欧美一区二区三区在线视频观看 | 婷婷亚洲五月色综合 | 精品国产黄色片 | www.天堂av| 久久国产香蕉视频 | 久久精品国产第一区二区三区 | 国产精品视频最多的网站 | 国产高清精品在线 | 久久不射电影院 | 视频一区二区国产 | 国产精品久久久久久吹潮天美传媒 | 日韩手机视频 | 免费又黄又爽 | 伊人国产女 | 亚洲精品国精品久久99热 | 久久婷婷五月综合色丁香 | 日韩中字在线 | 日韩毛片在线一区二区毛片 | 97人人模人人爽人人喊网 | 成人a免费看| a在线免费 | 中文字幕在线免费观看视频 | 伊人手机在线 | 一本—道久久a久久精品蜜桃 | 国产精品免费在线播放 | 一区二区精品在线视频 | 久久国产精品二国产精品中国洋人 | 国产一级二级三级在线观看 | 在线电影 一区 | 五月婷婷丁香 | 午夜狠狠干 | 国产精品久久二区 | 在线国产高清 | 91亚洲精品久久久蜜桃借种 | 亚洲高清在线精品 | 午夜国产福利在线 | 免费在线观看的av网站 | 亚洲在线精品 | 国产视频久久久久 | 天天鲁天天干天天射 | 亚洲经典视频在线观看 | 国产 亚洲 欧美 在线 | 狠狠色伊人亚洲综合网站色 | 国产视频精品免费播放 | 亚洲韩国一区二区三区 | 中文字幕在线影院 | 成年人网站免费观看 | 人人玩人人添人人 | 久久久久久久久久久久亚洲 | av亚洲产国偷v产偷v自拍小说 | 黄色成人免费电影 | 天堂网中文在线 | 国产精品一区二区久久精品爱涩 | 国产区欧美 | 久久色视频 | 美女又爽又黄 | 91丨九色丨蝌蚪丰满 | 91麻豆精品国产91久久久无需广告 | 久久激情综合网 | 伊人夜夜 | 欧美一区二区三区免费观看 | 国产精品亚洲片夜色在线 | 色吊丝av中文字幕 | 97视频在线观看免费 | 国产一级片不卡 | 午夜av在线电影 | 免费精品人在线二线三线 | 久久久精品网 | 免费亚洲一区二区 | 欧美日韩二三区 | 久久国产精品免费一区二区三区 | 91麻豆视频网站 | 午夜精品视频免费在线观看 | 午夜色性片 | 亚洲伊人婷婷 | 久久精品a| 中文字幕免费高清在线观看 | 国产原创在线 | 国产精品一区二区在线 | 国内精品视频免费 | 亚洲经典精品 | 91精品久久久久久综合乱菊 | 精品1区二区 | 在线观看免费av片 | 天天操天天爱天天干 | 欧美精品久久久久久久 | 久久久久综合精品福利啪啪 | 一级片色播影院 | 日韩特级毛片 | 免费看的av片 | 九九热精品在线 | 精品伊人久久久 | 欧美综合在线视频 | 亚洲久草在线 | 香蕉视频免费看 | 九九热在线观看 | 免费麻豆 | 久久综合五月天婷婷伊人 | 久久精品国产久精国产 | 免费亚洲黄色 | 亚洲精品国偷拍自产在线观看 | 又爽又黄又刺激的视频 | 日韩中文字幕在线看 | 精品在线观 | 91看片一区二区三区 | 国产午夜精品免费一区二区三区视频 | 国产字幕av | 亚洲精品在线视频网站 | 一区二区三区在线电影 | 精品夜夜嗨av一区二区三区 | 亚州国产精品视频 | 久久视频免费看 | 91丨九色丨国产女 | 婷婷av网 | 欧美一区二区在线刺激视频 | 国产午夜精品久久 | 欧美一级专区免费大片 | 久久精品香蕉 | 欧美乱码精品一区二区 | 五月天视频网 | 高清精品在线 | 黄色大片日本免费大片 | 亚洲精品国产自产拍在线观看 | 久国产在线播放 | 美女网站在线看 | 亚洲高清视频在线观看免费 | 午夜久久网 | 日韩av资源在线观看 | 久久爱992xxoo | 深夜免费福利网站 | 精品人妖videos欧美人妖 | aaawww| 国产成人一区二区三区 | 精品久久久久久久久久久久久久久久久久 | 久久在现| 亚洲久草在线 | 91视频免费网址 | 亚洲精品av在线 | 日韩中文字幕亚洲一区二区va在线 | 免费黄色网址大全 | 在线观看一 | 色综合久久悠悠 | 国产情侣一区 | 91视频在线观看大全 | 中文字幕日本特黄aa毛片 | 国产精品一区久久久久 | 麻豆视频国产 | 国产在线播放一区二区三区 | 亚洲尺码电影av久久 | 欧美激情另类文学 | 精品产品国产在线不卡 | 亚洲国产中文字幕在线视频综合 | 中国老女人日b | 欧美在线视频不卡 | 亚洲日韩精品欧美一区二区 | 在线之家免费在线观看电影 | 日本久久免费电影 | 久久精品久久久精品美女 | 国产成人区 | 99热在线这里只有精品 | 国产又粗又长的视频 | 中文字幕一区二区在线播放 | 91成人亚洲| 天堂av免费看 | 国产精品2020 | 免费在线播放av电影 | 欧美精品久久久久性色 | 天天干天天干天天操 | 日本激情动作片免费看 | 高清视频一区二区三区 | 久草免费电影 | 夜又临在线观看 | 成年人黄色免费看 | 成人资源在线 | 午夜视频不卡 | 久久久久久久国产精品 | 亚州精品天堂中文字幕 | 日韩在线视频观看免费 | av成人免费在线看 | 日本精品一区二区三区在线播放视频 | 米奇狠狠狠888 | 97精品国产97久久久久久春色 | 五月天激情综合 | 国产色啪 | 欧美精品久久人人躁人人爽 | 久久不卡免费视频 | 亚洲国产精品成人va在线观看 | 久久国产精品一区二区三区 | 欧美视屏一区二区 | 亚洲一区动漫 | 黄色一级大片在线免费看产 | 一区视频在线 | 在线精品亚洲 | 在线视频 亚洲 | 亚洲精品色 | 又黄又爽又无遮挡的视频 | 欧美成人中文字幕 | 亚洲天堂精品视频在线观看 | 久草在线最新免费 | 韩国中文三级 | 91亚洲永久精品 | 中文字幕电影在线 | 精品一区 在线 | 免费看片网址 | 国产精品丝袜 | 中文字幕视频观看 | 在线国产福利 | 国产视频每日更新 | 超碰公开在线 | 婷婷亚洲综合五月天小说 | 天天操天天综合网 | 国产小视频在线观看免费 | 97在线视频免费 | 一区二区精品视频 | 欧美日韩在线播放 | 国产免费观看高清完整版 | 久久国产美女 | 五月婷婷香蕉 | 国产剧情久久 | 国产专区日韩专区 | 婷婷夜夜 | 色综合久久中文字幕综合网 | 天天操天天射天天爱 | 日韩一区二区三区免费视频 | 18pao国产成视频永久免费 | 精品国产一区二 | 久久久久久免费 | 2021国产在线 | 麻豆影视网 | 精品国产乱码一区二区三区在线 | 亚洲高清av在线 | 狠狠的日 | 婷婷综合在线 | 国产一区二区日本 | 久草在线费播放视频 | 狠狠干免费 | 欧美日韩p片 | 日韩视频1区 | 色婷婷视频在线观看 | 久久美女高清视频 | 国产精品大尺度 | 97精品国产91久久久久久 | av一本久道久久波多野结衣 | 香蕉视频在线网站 | 9在线观看免费 | 91在线免费视频 | 日韩理论片在线观看 | 久久av在线播放 | 亚洲精区二区三区四区麻豆 | 日韩三级一区 | 久草电影在线观看 | 日韩一区二区三区免费视频 | 91传媒在线观看 | 亚洲一区二区三区精品在线观看 | 91福利在线导航 | 国产原创在线 | 综合网在线视频 | 九九九电影免费看 | 久久精品中文字幕免费mv | 色综合咪咪久久网 | 天天干夜夜擦 | 亚洲老妇xxxxxx| 国内精品久久久精品电影院 | 久久综合影院 | 在线看毛片网站 | 国产日韩在线播放 | 国产成人精品一区二区三区在线观看 | 蜜桃久久久 | 国产在线播放一区 | 久久国产午夜精品理论片最新版本 | 97超碰国产在线 | 国产在线va | 一色av | 91精品国产成人 | 亚洲爽爽网 | 色99网| 波多野结衣视频一区 | 国产精品久久久久久久久免费 | av在线播放中文字幕 | 91在线影视 | 国产一级二级三级在线观看 | 丝袜足交在线 | 国产99久 | 久久久福利 | 欧美精品亚洲精品 | 成年人在线免费看 | 成人午夜免费剧场 | 五月天欧美精品 | 久久久99久久| 91久草视频 | 成人毛片一区 | 中文字幕高清 | 国产精品一区二区精品视频免费看 | 国产一区二区三精品久久久无广告 | 日韩高清毛片 | 男女靠逼app | 欧美一区二区在线免费看 | 欧美另类z0zx | 欧美日韩亚洲国产一区 | 射射色 | 国产小视频国产精品 | 国产尤物一区二区三区 | 国产麻豆精品一区二区 | 夜夜高潮夜夜爽国产伦精品 | 国产成人高清av | 国产日韩欧美视频在线观看 | www国产亚洲精品久久网站 | 国产在线一区观看 | 美女黄频在线观看 | 激情欧美网 | 精品亚洲成a人在线观看 | 在线婷婷 | 国产a级片免费观看 | 一本一道久久a久久精品蜜桃 | www.五月天激情 | 欧美精品久久久久久久久久白贞 | 欧美成年网站 | 日韩精品91偷拍在线观看 | 久久精品国产精品亚洲 | 欧美成亚洲 | 日韩大片免费观看 | 91中文字幕在线 | 欧美另类美少妇69xxxx | 欧美亚洲精品在线观看 | 99精品国产aⅴ | 久久久男人的天堂 | 久久综合久久综合这里只有精品 | 狠狠干免费 | 亚洲理论片 | 九九免费在线观看视频 | 色成人亚洲网 | 日韩在线观看视频中文字幕 | 黄色电影在线免费观看 | 91九色精品国产 | 色永久免费视频 | 不卡av电影在线 | 午夜精品一区二区三区在线 | 天堂av在线中文在线 | 亚洲成人精品久久久 | 麻豆传媒在线免费看 | 在线观看av黄色 | 日本中文字幕在线看 | 999国产在线 | 正在播放国产精品 | 欧美日韩视频在线播放 | 狠狠色丁香 | 四虎在线视频 | 亚洲激情综合网 | 天天爽天天射 | 精品国产亚洲一区二区麻豆 | 成人毛片在线观看视频 | 精品国产视频在线 | 亚洲第一中文字幕 | 国产精品久久久久亚洲影视 | 久久一级片 | 四虎视频 | 精品在线观看国产 | se视频网址 | 99re视频在线观看 | 一区二区三区四区影院 | 91成人小视频 | 一区二区中文字幕在线观看 | 蜜臀av夜夜澡人人爽人人 | 超碰97人 | 一区二区电影在线观看 | 韩日电影在线 | 国产精品18久久久久久久网站 | 日韩在线观看小视频 | 国产精品一区二区av影院萌芽 | 久久99久久99精品 | 五月天久久激情 | 91精品一区二区三区蜜臀 | 男女免费av| 成 人 黄 色 免费播放 | 人人超碰免费 | 91在线公开视频 | 欧美色图亚洲图片 | 亚洲资源在线 | av资源网在线播放 | 国产91粉嫩白浆在线观看 | 午夜色影院 | 中文字幕123区 | 丁香婷婷色月天 | 超碰人人99 | www久久精品 | 国产精品一区二区三区久久久 | a久久久久 | 国产高清网站 | 麻豆免费视频网站 | 天天干天天操天天操 | 91av精品| 国产高清不卡一区二区三区 | 国产v在线观看 | 三级av网 | 亚洲成人免费在线 | 视频在线亚洲 | 中文字幕一区av | 国产剧情亚洲 | 九九视频免费观看视频精品 | www.av小说 | 亚洲精品久久久久久中文传媒 | 亚洲国产中文字幕在线观看 | 日韩欧美一二三 | 国产精品99久久久精品免费观看 | 婷婷中文字幕在线观看 | 91成人免费在线视频 | 欧美性生活一级片 | 一区二区三区四区不卡 | 亚洲精品在线免费播放 | 99中文字幕视频 | 亚洲影院色 | 国产精品一区二区精品视频免费看 | 日韩精品一区在线播放 | 国内久久精品视频 | av电影在线观看完整版一区二区 | 久久国产麻豆 | 麻豆视频免费在线播放 | 91大神dom调教在线观看 | 亚洲精品自拍视频在线观看 | 人人澡人人爽欧一区 | 久久久久久久久久电影 | 波多野结衣视频一区二区三区 | 麻豆91精品91久久久 | 韩国在线视频一区 | 69精品久久久 | 欧美日韩91 | 国产精品99久久久久的智能播放 | 亚洲人成人在线 | 国产小视频在线免费观看 | 人人擦 | 99九九免费视频 | 日韩网站一区 | 午夜性色 | 日韩在线观看免费 | 精品福利av| 成人黄色片在线播放 | 色多视频在线观看 | 国产精品一区二区av日韩在线 | 特级西西www44高清大胆图片 | 亚洲乱亚洲乱妇 | 国产一区二区三区网站 | 色在线免费 | 国产99在线免费 | 婷婷 中文字幕 | 日本中文字幕免费观看 | 中文字幕观看av | 美女网站免费福利视频 | 97超碰中文字幕 | 婷婷在线网 | 久久久在线免费观看 | 国产黄色免费观看 | 精品国产乱码久久久久久天美 | 精品久久久久久亚洲综合网站 | 制服丝袜在线91 | 蜜臀久久99静品久久久久久 | 狠狠躁日日躁夜夜躁av | 成人在线视频观看 | 99精品一区二区三区 | 看污网站 | 久久精品久久久久电影 | 日韩在线观看精品 | 久久久99久久 | 亚洲欧美在线观看视频 | 青草视频在线看 | 久草在线99 | 一级片免费观看 | 久久久久草 | 久久久蜜桃一区二区 | 欧美疯狂性受xxxxx另类 | 日韩小视频网站 | 国产在线中文字幕 | 中文字幕免费不卡视频 | 国产精品久久久久久久久久久免费看 | 久要激情网 | 国产一区欧美二区 | 久久综合亚洲鲁鲁五月久久 | 91日韩精品一区 | 欧美日韩高清一区 | 欧美激情视频一区二区三区 | 亚洲欧美日韩在线看 | 又色又爽又黄 | 狠狠狠色丁香婷婷综合激情 | 国产手机在线精品 | 久久国产免费视频 | 国产伦精品一区二区三区高清 | 天天操天天操天天爽 | 菠萝菠萝在线精品视频 | 欧美地下肉体性派对 | 天堂在线一区 | 色综合欧洲 | 亚洲成av人片在线观看www | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 国产一区二区在线免费播放 | 色婷婷综合视频在线观看 | 在线av资源 | 在线播放亚洲 | 麻豆系列在线观看 | 麻豆免费在线播放 | 久久综合九色综合欧美狠狠 | 91av大全| 1024手机基地在线观看 | 日日干日日色 | 蜜臀久久99精品久久久久久网站 | 国产精品一区二区美女视频免费看 | a√天堂中文在线 | 国产亚洲精品久久久久久电影 | 蜜臀久久99静品久久久久久 | 五月婷激情| www黄在线 | 男女靠逼app | 香蕉网站在线观看 | 久久久久久久久久国产精品 | 久久不卡国产精品一区二区 | 久热av在线 | 91中文字幕 | 天天五月天色 | 国产96在线视频 | 国产69精品久久99的直播节目 | 中文字幕丝袜 | 国产精品亚洲片在线播放 | 一级一级一片免费 | 2019中文字幕网站 | 国产亚洲精品美女 | 国产成人av在线影院 | a√天堂中文在线 | 国产精品国内免费一区二区三区 | 99r在线 | 不卡中文字幕av | 中文视频一区二区 | www.国产在线 | 久久精品欧美一区二区三区麻豆 | 国产精品手机在线播放 | 日日干天天爽 | 国产精品美女久久久久久免费 | 国产 日韩 欧美 中文 在线播放 | 天天操天天干天天摸 | 亚洲一区二区三区91 | 97av在线视频 | 综合黄色网 | 草久在线 | 1000部国产精品成人观看 | 国产免费观看高清完整版 | 日日干精品 | 亚洲精品国产欧美在线观看 | 天天爱天天射天天干天天 | 日韩av电影一区 | 热re99久久精品国产66热 | 久久久免费观看 | 色av网站 | 日韩精品视频一二三 | 一级黄色免费网站 | 成人免费xxx在线观看 | 日韩一区二区三区免费视频 | 欧美日韩啪啪 | 久久国产一二区 | 久草在线免费电影 | 高清av免费看| 国产手机视频在线观看 | 欧美性一级观看 | 高清在线观看av | 国产亚洲午夜高清国产拍精品 | 亚洲涩综合| 亚洲经典中文字幕 | 丝袜美腿在线视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 免费观看www小视频的软件 | 天天艹 | 日本午夜免费福利视频 | 久久激情五月丁香伊人 | 天堂在线一区二区三区 | 成 人 免费 黄 色 视频 | 狠狠操狠狠干天天操 | 欧美成人黄色 | 97免费公开视频 | 国产一区免费观看 | 精品99在线视频 | 欧美韩日在线 | 精品国产自在精品国产精野外直播 | 国产精品一区二区三区免费视频 | 色在线视频网 | 四虎国产精品免费 | 久久久久久综合网天天 | 99久免费精品视频在线观看 | 午夜aaaa| 国产精品一区二区在线免费观看 | 96精品高清视频在线观看软件特色 | 国产精品日韩精品 | 婷婷色av | 中文字幕日韩一区二区三区不卡 | 午夜视频在线观看一区 | 久久久久久久久久久电影 | 在线看国产一区 | 久热久草在线 | 91av官网 | 黄色大全免费网站 | 午夜av在线播放 | 国产va精品免费观看 | 免费成人黄色片 | 91精品国产91热久久久做人人 | 国产亚洲综合在线 | 三级在线视频观看 | 免费一级日韩欧美性大片 | 97视频在线观看网址 | 99久久精品免费看国产免费软件 | 日韩啪啪小视频 | 国产91精品看黄网站在线观看动漫 | 亚洲乱码国产乱码精品天美传媒 | 国产盗摄精品一区二区 | 中文字幕资源网在线观看 | av中文电影| 久久精品一二三区白丝高潮 | 在线观看黄色小视频 | 久久精品亚洲精品国产欧美 | 日本黄色免费大片 | 深夜激情影院 | 9999在线 | 中文字幕免费高清在线观看 | 中文字幕在线一二 | www色av| 韩国三级在线一区 | 久久免费国产 | 中文字幕在线资源 | 特片网久久 | 日本不卡一区二区 | 国产精品视频免费观看 | 国产精品视频免费在线观看 | 亚洲精品视频免费在线观看 | 亚洲在线精品 | 国产精品99久久久久久久久久久久 | 狠狠操狠狠干天天操 | 亚洲 欧美 综合 在线 精品 | 欧美a级免费视频 | 2019中文最近的2019中文在线 | 久久丁香| 欧美在线观看视频一区二区 | 亚洲成人黄色 | 免费中文字幕视频 | 一二区电影 | 热久久影视 | 久久精品综合一区 | 成人作爱视频 | 久久久国产影视 | 不卡视频在线 | 激情五月开心 | 亚洲免费不卡 | 国产精品porn | 亚洲第一av在线播放 | 青青草国产免费 | 韩国av不卡 | 丁香婷婷色综合亚洲电影 | 九色精品免费永久在线 | 香蕉影院在线播放 | 韩国三级一区 | 草免费视频 | 久久免费视频4 | 国产自产高清不卡 | 中文字幕高清 | 日韩高清不卡一区二区三区 | 婷婷五天天在线视频 | 亚洲精品电影在线 | 欧美日韩高清一区二区三区 | 97在线观视频免费观看 | 色综合久久久久久久久五月 | 成年人在线看视频 | 日韩中文字幕a | 欧美天天射 | 久久九九免费 | 天天久久夜夜 | 91免费高清在线观看 | 精品久久久99| 久久精品视频在线观看 | 欧美精品久久久久a | 色婷婷久久一区二区 | av一级片| 欧美视频日韩 | 亚洲国内在线 | av免费片 | 日韩av黄|