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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

配置管理之PackageProvider接口

發(fā)布時(shí)間:2025/4/16 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 配置管理之PackageProvider接口 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?PackageProvider的開始

從前面幾章中我們了解到了一點(diǎn):想知道如何加載相關(guān)配置文件就必須去找StrutsXmlConfigurationProvider類和XmlConfigurationProvider類。而StrutsXmlConfigurationProvider類和XmlConfigurationProvider類是在Dispatcher類的init_TraditionalXmlConfigurations方法里面被調(diào)用。代碼如下。

Dispatcher類:

1 private void init_TraditionalXmlConfigurations() {2 String configPaths = initParams.get("config");3 if (configPaths == null) {4 configPaths = DEFAULT_CONFIGURATION_PATHS;5 }6 String[] files = configPaths.split("\\s*[,]\\s*");7 for (String file : files) {8 if (file.endsWith(".xml")) {9 if ("xwork.xml".equals(file)) { 10 configurationManager.addContainerProvider(createXmlConfigurationProvider(file, false)); 11 } else { 12 configurationManager 13 .addContainerProvider(createStrutsXmlConfigurationProvider(file, false, servletContext)); 14 } 15 } else { 16 throw new IllegalArgumentException("Invalid configuration file name"); 17 } 18 } 19 }

看了上面的代碼。相信讀者也明白struts2會(huì)先去找過(guò)濾參數(shù)(initParams)里面是否有指定要去加載哪些配置文件。如果沒有的話,就用DEFAULT_CONFIGURATION_PATHS常量的值來(lái)加載。即是用"struts-default.xml,struts-plugin.xml,struts.xml"來(lái)解析加載。看樣子不用筆者多講大家都明白了。加載相關(guān)配置文件的代碼其實(shí)就在這里開始發(fā)生的。然后就是進(jìn)行供應(yīng)者注冊(cè)的工作。(相關(guān)的內(nèi)容在《Struts2 源碼分析——配置管理之ContainerProvider接口》也有講到) 這里筆者想提一下上面提到的struts-plugin.xml配置文件。這個(gè)置配文件是在插件包里面。如struts2-convention-plugin-2.5.2.jar等。也就是說(shuō)XmlConfigurationProvider類也有加載插件包的配置信息功能。這一點(diǎn)在XmlConfigurationProvider類的loadConfigurationFiles方法里面體現(xiàn)的很明顯。而loadConfigurationFiles方法就是用于初始化時(shí)候,加載對(duì)應(yīng)的配置文件。看一下代碼吧。

XmlConfigurationProvider類:

1 public void init(Configuration configuration) { 2 this.configuration = configuration; 3 this.includedFileNames = configuration.getLoadedFileNames(); 4 loadDocuments(configFileName); 5 }

XmlConfigurationProvider類 :

1 private void loadDocuments(String configFileName) {2 try {3 loadedFileUrls.clear();4 documents = loadConfigurationFiles(configFileName, null);5 } catch (ConfigurationException e) {6 throw e;7 } catch (Exception e) {8 throw new ConfigurationException("Error loading configuration file " + configFileName, e);9 } 10 }

XmlConfigurationProvider類的loadConfigurationFiles方法:

1 Iterator<URL> urls = null;2 InputStream is = null;3 4 IOException ioException = null;5 try {6 urls = getConfigurationUrls(fileName);//獲得配置文件所以在的URLS。就是找到哪里包里面有fileName值的URLS7 } catch (IOException ex) {8 ioException = ex;9 } 10 11 if (urls == null || !urls.hasNext()) { 12 if (errorIfMissing) { 13 throw new ConfigurationException("Could not open files of the name " + fileName, ioException); 14 } else { 15 LOG.trace("Unable to locate configuration files of the name {}, skipping", fileName); 16 return docs; 17 } 18 }

筆者沒有把關(guān)于loadConfigurationFiles方法的代碼他全部貼出來(lái)。只是貼出一部分。主要是想讓讀者知道。加載插件包的配置文件是如何進(jìn)行的。為了什么要講這個(gè)呢?reloadContainer方法里面在加載package元素的時(shí)候,進(jìn)行了倆個(gè)部分的加載工作。一分部是加載當(dāng)前提供的供應(yīng)者。另一部分就是加載插件包里面的供應(yīng)者。所以就必須知道原來(lái)還有插件包里面的供應(yīng)者。代碼如下:

1 ActionContext oldContext = ActionContext.getContext();2 try {3 4 setContext(bootstrap);//創(chuàng)建一個(gè)Action上下文5 container = builder.create(false);//新建一個(gè)Container容器6 setContext(container);//創(chuàng)建一個(gè)Action上下文7 objectFactory = container.getInstance(ObjectFactory.class);8 9 // 處理用戶配置里面的供應(yīng)者,如果是PackageProvider,就是加載對(duì)應(yīng)的package元素信息 10 for (final ContainerProvider containerProvider : providers) 11 { 12 if (containerProvider instanceof PackageProvider) { 13 container.inject(containerProvider); 14 ((PackageProvider)containerProvider).loadPackages(); 15 packageProviders.add((PackageProvider)containerProvider); 16 } 17 } 18 19 // 然后處理當(dāng)前插件供應(yīng)者,加載對(duì)應(yīng)的package元素信息 20 Set<String> packageProviderNames = container.getInstanceNames(PackageProvider.class); 21 for (String name : packageProviderNames) { 22 PackageProvider provider = container.getInstance(PackageProvider.class, name); 23 provider.init(this); 24 provider.loadPackages(); 25 packageProviders.add(provider); 26 } 27 28 rebuildRuntimeConfiguration();//新建運(yùn)行時(shí)候,用的配置 29 } finally { 30 if (oldContext == null) { 31 ActionContext.setContext(null); 32 } 33 }
PackageProvider的內(nèi)容

相信到這里,大家都知道加載package元素在哪里開始執(zhí)行的。而關(guān)于加載package元素中卻用到很多東西。讓筆者一個(gè)個(gè)講給大家聽吧。首先讓我們一下XmlConfigurationProvider類的loadPackages方法吧。這里才是正真加載工作。代碼如下?

XmlConfigurationProvider類:

1 public void loadPackages() throws ConfigurationException {2 List<Element> reloads = new ArrayList<Element>();3 verifyPackageStructure();4 5 for (Document doc : documents) {6 Element rootElement = doc.getDocumentElement();7 NodeList children = rootElement.getChildNodes();8 int childSize = children.getLength();9 10 for (int i = 0; i < childSize; i++) { 11 Node childNode = children.item(i); 12 13 if (childNode instanceof Element) { 14 Element child = (Element) childNode; 15 16 final String nodeName = child.getNodeName(); 17 18 if ("package".equals(nodeName)) {//判斷是否是package元素。 19 PackageConfig cfg = addPackage(child);//如果是增加package元素 20 if (cfg.isNeedsRefresh()) {//判斷是否需要重新加載 21 reloads.add(child); 22 } 23 } 24 } 25 } 26 loadExtraConfiguration(doc); 27 } 28 29 if (reloads.size() > 0) { 30 reloadRequiredPackages(reloads); 31 } 32 33 for (Document doc : documents) { 34 loadExtraConfiguration(doc); 35 } 36 37 documents.clear(); 38 declaredPackages.clear(); 39 configuration = null; 40 }

看到了上面的代碼,大家都知道相關(guān)增加package元素的工作在addPackage方法里面進(jìn)行的。而方法最后會(huì)返回一個(gè)PackageConfig類。PackageConfig類就是用于存放package元素信息的。為了方便讀者學(xué)習(xí),筆者希望讀者能了解一下struts-2.5.dtd這個(gè)文件。筆者現(xiàn)在不清楚有多少人了解過(guò)DTD的相關(guān)語(yǔ)法。或許很多人不知道DTD是什么東東。那么為什么要了解這個(gè)DTD文件呢?讓我們看一下DTD文件里面的一段代碼吧。

<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-allowed-methods?, global-exception-mappings?, action*)> <!ATTLIST packagename CDATA #REQUIREDextends CDATA #IMPLIEDnamespace CDATA #IMPLIEDabstract CDATA #IMPLIEDstrict-method-invocation (true|false) "true" >

從上面的DTD信息我們很快了解到package元素節(jié)點(diǎn)到底有些什么內(nèi)容。同時(shí)了解到package元素有哪里子節(jié)點(diǎn)。通過(guò)上面的信息在和PackageConfig類的成員變量進(jìn)行對(duì)比學(xué)習(xí)的話,就比較清楚的知道為什么會(huì)有這個(gè)成員變量了。所以讓我們看一段關(guān)于PackageConfig類的代碼。如下

1 protected Map<String, ActionConfig> actionConfigs;//action的配置信息2 protected Map<String, ResultConfig> globalResultConfigs;//結(jié)果的配置信息3 protected Set<String> globalAllowedMethods;//公共允許的方法4 protected Map<String, Object> interceptorConfigs;//攔截器5 protected Map<String, ResultTypeConfig> resultTypeConfigs;//結(jié)果類型的配置信息6 protected List<ExceptionMappingConfig> globalExceptionMappingConfigs;//異常的配置信息7 protected List<PackageConfig> parents;//package元素的父配置信息8 protected String defaultInterceptorRef;//默認(rèn)的攔截器9 protected String defaultActionRef;//默認(rèn)的action 10 protected String defaultResultType;//默認(rèn)的result信息 11 protected String defaultClassRef; 12 protected String name;//名字 13 protected String namespace = "";//命名空間 14 protected boolean isAbstract = false;//是否為抽象 15 protected boolean needsRefresh;//需要重新刷新 16 protected boolean strictMethodInvocation = true;

讓筆者簡(jiǎn)單的講解一下關(guān)于每個(gè)變量的作用吧。如下

1.Map<String, ActionConfig> actionConfigs:用于存放action的配置信息。我們都知道一個(gè)package可以對(duì)應(yīng)多的action配置。

2.Map<String, ResultConfig> globalResultConfigs:用于存入對(duì)應(yīng)的公共結(jié)果。也許有一種情況,那就是多個(gè)action共用一個(gè)結(jié)果。

3.Set<String> globalAllowedMethods:就是action允許被調(diào)用的方法。在struts-default.xml配置文件里面設(shè)置默認(rèn)的值:execute,input,back,cancel,browse,save,delete,list,index。

4.Map<String, Object> interceptorConfigs:用于存放當(dāng)前package元素的攔截器。對(duì)于攔截器的概念的話。后面的章節(jié)會(huì)講到。

5.Map<String, ResultTypeConfig> resultTypeConfigs:用于存放action返回的結(jié)果類型。

6.List<ExceptionMappingConfig> globalExceptionMappingConfigs:用于存放action發(fā)生異常的異常配置。

7.ist<PackageConfig> parents:用于存放當(dāng)前package元素的父package元素的信息。

8.String defaultActionRef:標(biāo)示當(dāng)前package元素的默認(rèn)action。

9.String defaultResultType:標(biāo)示當(dāng)前action返回的默認(rèn)結(jié)果類型。

10.String defaultClassRef:action類默認(rèn)的父類。

11.String name:package元素的名稱

12.String namespace :package元素的命名空間

13.boolean isAbstract:package元素是否為抽象

14.boolean needsRefresh:標(biāo)示是否需要重新刷新。

15.boolean strictMethodInvocation:標(biāo)示是否啟動(dòng)SMI.關(guān)于SMI請(qǐng)找相關(guān)的知識(shí)點(diǎn)。

好了。理解了PackageConfig類的信息之后,讓我們看一下addPackage方法代碼吧。

1 protected PackageConfig addPackage(Element packageElement) throws ConfigurationException {2 String packageName = packageElement.getAttribute("name");3 PackageConfig packageConfig = configuration.getPackageConfig(packageName);4 if (packageConfig != null) {5 LOG.debug("Package [{}] already loaded, skipping re-loading it and using existing PackageConfig [{}]", packageName, packageConfig);6 return packageConfig;7 }8 9 PackageConfig.Builder newPackage = buildPackageContext(packageElement); 10 11 if (newPackage.isNeedsRefresh()) { 12 return newPackage.build(); 13 } 14 15 LOG.debug("Loaded {}", newPackage); 16 17 // 增加結(jié)果類型到newPackage里面去。 18 addResultTypes(newPackage, packageElement); 19 20 // 增加攔截器和攔截棧到newPackage里面去。 21 loadInterceptors(newPackage, packageElement); 22 23 // 設(shè)置newPackage的默認(rèn)攔截器 24 loadDefaultInterceptorRef(newPackage, packageElement); 25 26 // 設(shè)置newPackage的默認(rèn)類,即是action類的父類 27 loadDefaultClassRef(newPackage, packageElement); 28 29 // 增加公共結(jié)果到newPackage里面去。 30 loadGlobalResults(newPackage, packageElement); 31 //設(shè)置允許的方法 32 loadGlobalAllowedMethods(newPackage, packageElement); 33 34 // 增加異常處理newPackage里面去。 35 loadGlobalExceptionMappings(newPackage, packageElement); 36 37 // 加載對(duì)應(yīng)的action信息。并增加到newPackage里面去。 38 NodeList actionList = packageElement.getElementsByTagName("action"); 39 40 for (int i = 0; i < actionList.getLength(); i++) { 41 Element actionElement = (Element) actionList.item(i); 42 addAction(actionElement, newPackage); 43 } 44 45 // 設(shè)置newPackage默認(rèn)的ACTION 46 loadDefaultActionRef(newPackage, packageElement); 47 48 PackageConfig cfg = newPackage.build(); 49 configuration.addPackageConfig(cfg.getName(), cfg);//增加到配置類里面 50 return cfg; 51 }

從上面的代碼中我們可以發(fā)現(xiàn)最后獲得package元素信息都會(huì)增加Configuration接口對(duì)應(yīng)的實(shí)例。即是DefaultConfiguration類的實(shí)例。這個(gè)方法也面也調(diào)用了很多方法來(lái)完成增加package元素。這些方法筆者并不想講解。請(qǐng)讀者自行根據(jù)筆者對(duì)方法的定義去查看源碼。而這里面有一點(diǎn)到是值得筆者注意的。那便是在PackageConfig類的實(shí)例的時(shí)候,好像用到建造者模式來(lái)實(shí)現(xiàn)。所以讀者在查看源碼的時(shí)候,如果不懂為什么作者要這樣子寫的話。請(qǐng)自行去查看相關(guān)的建造者模式的知識(shí)點(diǎn)。而加載package元素信息的工作到這里就算是結(jié)束了。

在加載package元素信息的工作結(jié)束之后,還有一件工作也是值得注意的。那便是上面reloadContainer方法代碼中出現(xiàn)的rebuildRuntimeConfiguration方法。這個(gè)方法做了什么呢?在筆者理解為創(chuàng)建一個(gè)運(yùn)行時(shí)的配置信息,用于方便調(diào)用。在什么時(shí)候調(diào)用呢?至少筆者在DefaultActionProxy類的prepare方法調(diào)用到了。這個(gè)prepare方法是在action請(qǐng)求執(zhí)行action將用到。詳細(xì)的內(nèi)容筆者會(huì)在后面的章節(jié)里面講到。rebuildRuntimeConfiguration方法最后會(huì)創(chuàng)建一個(gè)叫RuntimeConfiguration接口的實(shí)例,即是RuntimeConfigurationImpl類的實(shí)例。

本章總結(jié)

本章的重點(diǎn)是知道struts2是如何加載相關(guān)的package元素節(jié)點(diǎn)信息的。那為什么要知道這部分的內(nèi)容。相信筆者心里面應(yīng)該筆者更清楚。如果不知道package元素的信息。那么struts2如何根據(jù)用戶輸入的URL來(lái)處理和運(yùn)行相關(guān)的action類呢?不知道筆者是否還記得核心機(jī)制的圖片。可以這么說(shuō)吧。到這一章相關(guān)橙黃色(Servlet Filters)部分的知識(shí)可以都結(jié)束了。我們知道如何加載相關(guān)的配置信息,知道如何加載package元素信息。而下一章筆者將對(duì)藍(lán)色(Struts core)部分的知識(shí)進(jìn)行講解。即是根據(jù)現(xiàn)有的配置信息來(lái)處理用戶發(fā)來(lái)的action請(qǐng)求。

轉(zhuǎn)載于:https://www.cnblogs.com/chenliyang/p/6552575.html

總結(jié)

以上是生活随笔為你收集整理的配置管理之PackageProvider接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日韩高清片| 丰满少妇久久久 | av天天在线观看 | 国产黄色视| 91天天操 | 狠狠干.com | 国产精品视频全国免费观看 | 国产黄色观看 | 成人av在线直播 | 成人免费xyz网站 | 国产欧美精品一区二区三区四区 | 亚洲一区不卡视频 | 狠狠色丁香婷婷综合久小说久 | 久久这里只有精品视频99 | 91精品一区二区三区久久久久久 | 国产一级片免费播放 | 丝袜少妇在线 | 九九热re | 日韩精品免费在线播放 | 久久少妇免费视频 | 久久国产成人午夜av影院宅 | 成人国产精品免费观看 | 人人搞人人爽 | 97免费中文视频在线观看 | 色伊人网 | 日日碰狠狠躁久久躁综合网 | 国产精品免费观看在线 | 久草免费新视频 | 99电影| 香蕉久久久久 | 国产精品 中文字幕 亚洲 欧美 | 亚洲 在线 | 免费看成年人 | 992tv在线观看| 久久人人爽爽人人爽人人片av | 亚洲黄色成人 | 国产精品99久久久久久宅男 | 成人影音av| 国内偷拍精品视频 | 久久精品在线视频 | 亚洲激情av | 国产伦理精品一区二区 | 99久久国产免费看 | 亚洲精品影视 | 天堂av免费看 | 色99导航| 欧美一区二区三区免费观看 | 久久久精品网 | 欧美日韩一区二区免费在线观看 | 91色网址 | 国产一级高清 | 中文字幕之中文字幕 | 成人亚洲免费 | 中文乱码视频在线观看 | 精品一二三区视频 | 麻豆va一区二区三区久久浪 | 久久综合狠狠 | 97视频人人澡人人爽 | 国产精品一区二区三区免费视频 | 黄色网址在线播放 | 精品久久美女 | 射综合网 | 91精品视频免费看 | 国产黄免费看 | 日韩簧片在线观看 | 久久一久久 | 久久在线免费视频 | 国产午夜精品一区二区三区四区 | 五月婷婷视频在线 | 麻豆网站免费观看 | 国产精品一区二区电影 | 日韩,中文字幕 | 青草视频在线看 | 99久久综合国产精品二区 | 爱射综合 | 91视频网址入口 | 91福利免费 | 国产成人精品一区二区三区 | 亚洲黄色大片 | 在线看的av网站 | 国产精品一区二区精品视频免费看 | 天天搞天天干 | 韩日精品中文字幕 | 午夜精品久久久久 | 日韩av成人免费看 | 久久久这里有精品 | 亚洲最新合集 | 黄色亚洲大片免费在线观看 | 麻豆91在线看 | 男女视频91 | 日韩特级片 | 六月天色婷婷 | 久久免费精品 | 精品国产美女在线 | 999视频在线播放 | 久久亚洲婷婷 | 成人av网站在线观看 | 911香蕉 | 亚洲最大成人免费网站 | 天天干天天操天天射 | 色国产视频| 久久久久成人精品 | 亚洲五月六月 | av日韩不卡| av在线网站大全 | 91免费在线 | 免费观看性生交大片3 | 国产精品久久久久久久久久久杏吧 | 天天干天天干天天射 | 亚洲aⅴ乱码精品成人区 | 91在线影视 | 国产麻豆剧传媒免费观看 | 91精品网站在线观看 | 九九久久久久99精品 | 国外成人在线视频网站 | 国产原创91 | 亚洲 欧美 91 | 九九久久久 | 天天干天天射天天操 | 欧美一区中文字幕 | 国产一区在线观看视频 | 亚洲精品www久久久久久 | 亚洲欧美日韩一二三区 | 国产日本高清 | 麻豆一精品传二传媒短视频 | 高清av网 | www.夜夜操.com | 色综久久| 免费在线激情电影 | 91超级碰碰 | 麻豆精品视频在线观看免费 | 黄av免费在线观看 | 精品在线视频一区二区三区 | 狠狠狠操 | 日韩av女优视频 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 少妇啪啪av入口 | 亚洲精品视频在线观看免费视频 | 最新av网站在线观看 | 色狠狠久久av五月综合 | av电影中文字幕 | 夜夜躁狠狠躁日日躁视频黑人 | 在线看成人av | 久久久午夜电影 | 日韩激情视频在线观看 | 国产亚洲成人精品 | 国产黄色片一级三级 | 国产流白浆高潮在线观看 | 国产成人精品一区二区三区在线观看 | 91精品电影 | 日韩久久网站 | 亚洲视频免费在线观看 | 成人动漫视频在线 | 操高跟美女 | 亚洲国产午夜视频 | 国模精品在线 | 激情深爱 | 国产高清视频在线免费观看 | 91av久久| 天天天干天天射天天天操 | 欧美亚洲xxx | 精品久久久久久一区二区里番 | 亚洲高清av | 中国美女一级看片 | 国产精品久久影院 | 色婷婷88av视频一二三区 | 蜜臀aⅴ国产精品久久久国产 | 国产精品福利一区 | 亚洲伊人成综合网 | 日韩精品免费在线观看 | 九九在线视频 | 日韩手机视频 | 日本精品在线视频 | 欧美日韩性 | 天天操天天射天天舔 | 天天综合网天天 | 高清不卡一区二区在线 | 亚洲最大成人免费网站 | 免费看污的网站 | 中文字幕在线观看视频免费 | 狠狠干狠狠久久 | 蜜臀一区二区三区精品免费视频 | 麻花豆传媒一二三产区 | 天天干天天操天天爱 | 国产午夜精品一区二区三区欧美 | 最新成人av | 免费视频在线观看网站 | 日韩精品免费在线观看 | 国产视频精选在线 | 91麻豆福利 | 久久手机在线视频 | 国产成人免费高清 | 精品国产一区二区三区噜噜噜 | 国产精品久久久久婷婷二区次 | 综合激情网 | 国产亚洲综合性久久久影院 | 久久综合九色综合欧美就去吻 | 婷婷99 | 麻豆高清免费国产一区 | 欧美日韩观看 | 激情av综合 | 国产综合福利在线 | 在线视频亚洲 | 国产精久久久久久妇女av | 久久精品毛片基地 | 午夜视频在线观看一区二区 | 夜夜操天天干, | 欧美日韩国产色综合一二三四 | 久久蜜臀一区二区三区av | 国产毛片久久 | 国产不卡精品视频 | 日韩av在线一区二区 | 国产不卡一二三区 | 91传媒在线观看 | 久久久久久久国产精品视频 | 超碰97人人射妻 | 高清国产午夜精品久久久久久 | 2023年中文无字幕文字 | 国产亚洲欧洲 | 亚洲伦理一区二区 | 成年美女黄网站色大片免费看 | 亚洲三级影院 | 国产成人一区二区精品非洲 | 欧美日韩一区二区三区在线免费观看 | 91视频啪| 日本黄色免费在线观看 | 中文字幕在线观看2018 | 一 级 黄 色 片免费看的 | 在线观看中文字幕av | 国产高清在线视频 | av片中文| 日日精品 | 日韩精品专区在线影院重磅 | 国产欧美最新羞羞视频在线观看 | 亚洲特级片 | 亚洲高清在线视频 | 午夜视频在线观看一区二区三区 | 特级毛片网站 | 超碰在线天天 | 国产网红在线观看 | 国产精品久久久久久久久久久久午 | 亚洲精品日韩一区二区电影 | 96av麻豆蜜桃一区二区 | 青青草国产在线 | 97超碰香蕉| 黄视频色网站 | 在线高清一区 | 日韩视频免费观看高清完整版在线 | 国产成人精品一区一区一区 | 大胆欧美gogo免费视频一二区 | 午夜影视剧场 | 黄色软件在线观看免费 | 亚洲精品乱码久久久久久蜜桃欧美 | 欧美成人黄色 | 三级av免费观看 | 人人澡人人爽欧一区 | 91福利区一区二区三区 | 色综合欧洲 | 一区二区三区电影 | 免费热情视频 | 99久热在线精品视频 | 日韩中文字幕在线观看 | 亚洲成色777777在线观看影院 | 久久免费视频观看 | 亚洲第一中文网 | 日韩精品久久久久久中文字幕8 | 天天天综合 | 久久久国产精品一区二区三区 | 日韩在线观看第一页 | 国产精品视频不卡 | 成人久久久久久久久久 | 国产成人精品亚洲a | 日产乱码一二三区别在线 | 亚洲国产精品影院 | 日韩欧美一区二区三区视频 | 三级视频日韩 | 国产精品一区二区久久 | 91在线视频导航 | 天天操天天操天天操天天操天天操 | .国产精品成人自产拍在线观看6 | 亚洲一区不卡视频 | 99久久精品免费一区 | 天天玩夜夜操 | 国产一区在线视频 | 在线精品观看国产 | 黄色成人在线 | 日韩精品免费一线在线观看 | 久久黄色美女 | 人人爱在线视频 | 最新久久免费视频 | 亚洲成人精品久久 | 精品毛片久久久久久 | 91网页版免费观看 | 手机在线永久免费观看av片 | 在线成人一区二区 | 国产自制av | 极品久久久 | 国产精品免费观看久久 | 国产中文字幕在线播放 | 免费视频久久久 | 天天玩天天干 | 日韩手机视频 | 国产精品视频 | 激情婷婷在线 | 五月婷婷视频在线 | 亚洲理论片在线观看 | 国产精品久久久久久久久久尿 | 日韩大片免费观看 | 久精品在线观看 | 国产一区二区不卡在线 | 日韩电影黄色 | 亚洲高清在线视频 | 国产人成在线观看 | 国产精品theporn | 久艹视频在线免费观看 | 日韩在线观看影院 | 色综合亚洲精品激情狠狠 | 久久这里有 | 国产精品3区 | 亚洲成人精品在线 | 欧美片网站yy | 色综合久久久久综合体桃花网 | 精品电影一区二区 | 亚洲精品婷婷 | 久久综合五月天婷婷伊人 | 97精品久久 | 人人搞人人爽 | www.久久色 | 91高清一区 | 免费观看午夜视频 | 日韩手机在线 | 五月天色丁香 | 日韩久久一区 | 国产成人三级在线 | 国产一区二区不卡视频 | 国产在线播放一区二区三区 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | a天堂一码二码专区 | 久久不卡国产精品一区二区 | 天天干夜夜擦 | 日韩精品免费一区二区 | 色婷婷综合视频在线观看 | 久久久久久久99精品免费观看 | 免费黄色在线 | 国产精品一区二区久久 | 91丨九色丨国产女 | 国产精品久久一 | 四虎成人精品永久免费av | 美女免费黄视频网站 | 日p在线观看 | 精品福利片 | 精品久久1 | 午夜av影院 | 国产精品大片免费观看 | 国产成人av在线 | 亚洲国产成人精品在线观看 | 在线国产欧美 | 激情久久五月天 | 人人干人人做 | 视频一区在线播放 | 九九视频精品免费 | 黄色一级性片 | 日韩理论在线视频 | 日本不卡一区二区三区在线观看 | 欧美日韩精品区 | 黄色三几片 | www.久久色 | 国产精品女同一区二区三区久久夜 | 中国一区二区视频 | 99精品一区二区三区 | 色综合久久88色综合天天 | 狠狠躁日日躁夜夜躁av | 在线看v片成人 | 伊人影院av | 91精品国产成 | 天天操天天操 | 国产日韩亚洲 | 国产精品美女毛片真酒店 | 国产成人在线播放 | 国产精品观看在线亚洲人成网 | 日韩区欠美精品av视频 | 91免费网址 | 久久九九免费视频 | 精品久久久免费 | 午夜精品影院 | 国产破处视频在线播放 | 国产精品毛片一区视频播不卡 | 久久视频在线视频 | 青草视频在线免费 | 午夜影院一级片 | 五月天亚洲综合 | 成人蜜桃网 | 精品视频国产 | 国产成人黄色av | 一区二区三区中文字幕在线 | 欧美一级片在线 | 久久成人午夜视频 | 国产色a在线观看 | 天天操天天色综合 | 成片视频在线观看 | 亚洲精品在线观看中文字幕 | 午夜电影av | 激情丁香5月| 天天操天天操天天操天天操天天操 | 五月婷婷激情综合网 | 欧美在线观看视频一区二区 | 国产精品免费在线播放 | 人人玩人人添人人澡97 | 国产在线国偷精品产拍免费yy | 成人免费在线视频 | av大片免费在线观看 | 91免费高清视频 | 久久精品成人欧美大片古装 | 精品福利视频在线 | 国产精品久久久久久久久久久久久久 | 亚洲成aⅴ人片久久青草影院 | 日韩激情第一页 | 欧美激情第十页 | 免费中文字幕视频 | 涩涩网站在线 | 在线视频日韩精品 | 一区二区 不卡 | 97人人艹 | 日韩精品欧美专区 | 麻豆国产网站入口 | 成人免费大片黄在线播放 | 五月婷婷导航 | 91在线视频精品 | 91看片在线观看 | 欧美日韩一区二区在线观看 | 国产一区二区在线观看免费 | 国产精品日韩高清 | 国产精品综合在线 | 欧美a级在线免费观看 | 久久在线观看 | 99r在线精品 | 激情小说 五月 | 国产精品欧美久久久久久 | 日日干网址 | 99热在线看| 在线观看av中文字幕 | 久久99精品久久久久久秒播蜜臀 | 欧美国产不卡 | 97热久久免费频精品99 | 中文字幕xxxx | 婷婷丁香久久五月婷婷 | 国产精品亚洲片在线播放 | 欧美a性| 久久中文字幕在线视频 | 成人在线观看资源 | 久久99精品久久久久久秒播蜜臀 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品久久久久久超碰 | 精品1区二区 | 亚洲三级av | 中文字幕高清免费日韩视频在线 | 国产精品嫩草影院123 | 韩国av免费在线观看 | 国产自产高清不卡 | 久草97| 97国产大学生情侣白嫩酒店 | 国产精品国产毛片 | 在线a视频| 国产玖玖精品视频 | 狠狠色伊人亚洲综合网站色 | 国内精品久久久久影院优 | 中文字幕在线播放一区二区 | 成人亚洲欧美 | 国产精品av一区二区 | 免费在线h | 制服丝袜一区二区 | 久久久久久高潮国产精品视 | 手机在线观看国产精品 | 免费在线观看污网站 | 成人av资源网| 在线有码中文字幕 | 伊人天天| 中国一级片视频 | 日韩欧美视频免费观看 | 天天曰天天干 | 日韩中文字幕免费 | 色综合天天综合 | 中文免费在线观看 | 亚洲欧美精品一区二区 | 一区二区三区手机在线观看 | 精品国产欧美 | 国产成人一区二 | 国产精品白丝jk白祙 | 欧美精品在线视频 | 91av福利视频 | 亚洲乱码精品久久久 | 免费a网 | 精品国产诱惑 | 69国产盗摄一区二区三区五区 | 日韩av成人在线观看 | 在线观看免费色 | jizz999| 色综合久久88色综合天天6 | 毛片www| 少妇性色午夜淫片aaaze | 五月天婷婷视频 | 在线观看av免费观看 | 久草9视频 | 日韩av视屏 | 最近中文字幕免费视频 | 国产高清小视频 | 欧美在线一级片 | 中国一级片免费看 | 国产婷婷精品av在线 | 亚洲永久国产精品 | 色com网 | 中文国产字幕在线观看 | 色综合天天天天做夜夜夜夜做 | 国产精品成人免费 | av字幕在线 | 欧美性久久久久久 | 在线观看视频 | 中文乱码视频在线观看 | 成人av在线看 | 天天视频色 | 午夜美女wwww | 亚洲理论影院 | 97成人免费 | 国产精品国产自产拍高清av | 精品一区二区三区电影 | 韩国一区二区三区视频 | 日韩三级中文字幕 | 免费在线观看污网站 | 在线观看中文字幕一区二区 | 亚洲a在线观看 | 4hu视频| 色噜噜狠狠狠狠色综合久不 | 国产高清在线免费 | 天天色天天操天天爽 | 亚洲最新视频在线播放 | 亚洲精品乱码久久久久久9色 | 在线观看视频国产 | 人人看人人 | 亚洲精品国产精品99久久 | 97色综合| 日本黄区免费视频观看 | 日日夜夜噜 | 开心色插 | 99爱视频在线观看 | 亚洲视频456| 亚洲色图激情文学 | 国产黄色特级片 | 久久精品久久综合 | 久久精品久久国产 | 久久亚洲婷婷 | 国产黑丝一区二区三区 | 人人澡人人爱 | 国产中年夫妇高潮精品视频 | av最新资源| 天天操天天操天天爽 | 欧美激情视频久久 | 成人午夜电影在线观看 | 天天操天天操天天操 | 国色天香第二季 | 超碰电影在线观看 | 日韩久久视频 | 成人av高清在线 | 久久99亚洲精品久久 | 97精品超碰一区二区三区 | 久久爱www.| 国产精品久久久久亚洲影视 | 四虎成人精品永久免费av | 最新久久免费视频 | 国产一级久久 | 亚洲午夜精品久久久久久久久久久久 | 18久久久久 | 国模一区二区三区四区 | 日韩精品中文字幕在线 | 精品影院一区二区久久久 | 亚av在线 | 日韩av专区| 亚洲深爱激情 | 96av麻豆蜜桃一区二区 | 国产三级视频在线 | 欧美日韩性视频 | 97在线观看视频国产 | 精品国产一区二区三区久久久久久 | 国产成人黄色片 | 欧美日韩中文国产 | 国产精品女 | 国产精品精品久久久久久 | 久久久国产电影 | 91桃花视频 | 久艹视频免费观看 | 人人爽人人搞 | 欧美一区二区三区免费观看 | 狠狠色丁香久久婷婷综合五月 | 国产 亚洲 欧美 在线 | 免费a v观看 | 91资源在线免费观看 | 国产在线一线 | 日韩最新av在线 | 国产成人1区 | 日韩精品中文字幕在线播放 | 日韩欧美一区二区三区视频 | 久99久在线视频 | 成人高清在线 | 亚洲高清在线观看视频 | 亚洲永久精品在线 | 亚洲视频久久久 | 国产日韩欧美在线观看 | 免费人成在线观看网站 | 99久热在线精品视频 | 欧美一区二区在线刺激视频 | 久久久久综合精品福利啪啪 | 欧美日韩在线播放 | 亚洲国产中文字幕在线视频综合 | 97国产精品久久 | 亚州国产精品 | 亚州欧美精品 | 狠狠操天天射 | 高清久久久 | 亚欧洲精品视频在线观看 | 亚洲一级黄色 | 精品一区二三区 | 五月开心网 | 丁香av在线 | 在线免费观看视频一区 | 国产精品婷婷午夜在线观看 | 亚洲精品日韩一区二区电影 | 少妇性色午夜淫片aaaze | 色视频国产直接看 | 日本久久久精品视频 | 欧美日韩成人 | 97看片网| 97视频在线观看免费 | 精品亚洲一区二区三区 | 久草在线综合 | 国产黄色免费电影 | 国产又粗又猛又色又黄网站 | 欧美xxxxx在线视频 | 国产高清无线码2021 | 五月婷婷电影网 | 成年人视频在线免费 | 成年人在线播放视频 | 欧美精品久久久久久久久久 | 18做爰免费视频网站 | 五月天久久久久久 | 五月综合激情网 | 欧美成年人在线观看 | 99视屏 | h视频在线看 | 欧美a性| 免费观看www7722午夜电影 | 国产免费叼嘿网站免费 | 国产91亚洲 | av黄色av | 黄色aa久久 | 国产麻豆精品在线观看 | 人人超碰97 | 亚洲精品婷婷 | 丝袜一区在线 | av网址最新| 久久伊人爱 | 在线亚洲播放 | 日韩在线观看影院 | 国产精品一区二区在线看 | 超碰电影在线观看 | 五月天堂网 | 亚洲成aⅴ人在线观看 | 中文字幕在线看视频 | 亚洲电影一区二区 | 天天干天天干天天色 | 波多野结衣精品 | 在线午夜电影神马影院 | 天天射天天爱天天干 | 综合久久婷婷 | 一区二区三区免费播放 | 亚洲综合色激情五月 | 日韩资源在线播放 | 狠狠亚洲| 四虎国产精品永久在线国在线 | 国产成人一级 | 亚洲成aⅴ人片久久青草影院 | 手机av在线不卡 | 最近2019年日本中文免费字幕 | 国产精品 日韩精品 | 欧美日韩在线电影 | 亚洲一区二区视频在线播放 | 97夜夜澡人人双人人人喊 | 欧美色综合天天久久综合精品 | 色多多视频在线 | 综合色天天 | 日本爽妇网 | 黄a在线观看 | www.久久色.com| 婷婷网站天天婷婷网站 | 久久精品一区二区三区国产主播 | 三级av免费看 | 亚洲最大av在线播放 | 99r精品视频在线观看 | 欧美日韩国产伦理 | 久久99精品久久久久久久久久久久 | 日韩a级黄色片 | 免费亚洲一区二区 | 成年人在线免费看 | 亚洲天堂毛片 | 欧美一区在线观看视频 | 免费在线播放视频 | 一区二区视频免费在线观看 | 中文字幕高清av | 永久黄网站色视频免费观看w | 国产高清一级 | 国产精品24小时在线观看 | 一级黄色在线免费观看 | 国产高h视频 | 免费91麻豆精品国产自产在线观看 | 久久av高清 | 久久99久久99精品免观看粉嫩 | 日韩在线观看视频网站 | 97国产一区二区 | 国内精品在线一区 | 久久精品久久精品久久 | 在线精品视频免费播放 | 九九三级毛片 | 一级片视频在线 | 99色在线播放| 色网av| 日韩高清一区在线 | www.日本色 | 91爱爱中文字幕 | 99热高清 | 久久免费毛片 | 干干干操操操 | 91色吧 | 精选久久 | 国产福利91精品张津瑜 | 97在线播放 | 99免费在线视频 | 69国产精品视频 | 欧美一级淫片videoshd | 视频 天天草| 六月色丁 | 久久精品视频99 | 精品九九九 | 国产69精品久久久久久久久久 | 亚洲综合爱 | 国产精品成人自产拍在线观看 | 欧美久久久一区二区三区 | 日韩毛片在线播放 | 男女激情麻豆 | 午夜久久久久久久久久影院 | 日韩av中文字幕在线免费观看 | 亚洲国产精品成人va在线观看 | 国产亚洲aⅴaaaaaa毛片 | 久久成人免费视频 | 国产九九九视频 | 黄色一及电影 | 精品91在线 | 超碰在线97国产 | 69成人在线 | 国产亚洲久一区二区 | 日韩电影一区二区在线 | 国产精品18久久久久久久 | 亚洲免费在线视频 | 国产成人一区二区三区在线观看 | 人人干人人爽 | 精品久久久久久综合日本 | 在线日韩中文字幕 | 国产精品久久久久久吹潮天美传媒 | 97国产电影 | 精品久久国产一区 | 精品专区 | 中文字幕一区二区三区乱码不卡 | 亚洲精品激情 | 日韩乱码中文字幕 | 国产 日韩 在线 亚洲 字幕 中文 | 婷婷深爱 | 亚洲aⅴ一区二区三区 | 97国产大学生情侣酒店的特点 | 九九九九九国产 | 亚洲精品久久久久久国 | 超碰97免费 | 91人人爽人人爽人人精88v | 中文字幕在线不卡国产视频 | 九九免费观看视频 | 成人欧美一区二区三区在线观看 | 国产91精品一区二区麻豆网站 | 99久久精品无免国产免费 | 色.www| 免费黄色一区 | 日韩欧美高清一区二区三区 | 国产视频一区在线 | 日韩毛片在线播放 | 成人a免费看 | 伊人天天色 | 欧美 日韩 性 | 中文在线a∨在线 | 婷婷5月色 | 免费精品人在线二线三线 | 在线导航av | 成人在线视频论坛 | 91av视频| 成人黄色小视频 | 99精品国产在热久久下载 | 日韩午夜小视频 | 91精品国产一区二区在线观看 | 9999国产| 美州a亚洲一视本频v色道 | 国产在线观看污片 | 欧美激情精品久久久久久 | 91av国产视频| 97碰在线视频| 久久伊人热| 国产精品一区二区三区观看 | 国产福利网站 | 日批视频在线观看免费 | 深夜免费福利视频 | 九九久久影视 | 99热99| 91最新网址在线观看 | 欧美日韩国产精品一区二区三区 | www,黄视频 | 在线免费观看视频你懂的 | 国产a级免费 | 视频1区2区 | 97成人精品视频在线播放 | 91超级碰 | 成人在线免费观看网站 | 丁香六月国产 | 国产成人综| 国产一区二区精品在线 | 99久免费精品视频在线观看 | 91九色最新地址 | av中文资源在线 | 五月天婷婷视频 | 正在播放国产精品 | 91看毛片| 伊人婷婷色 | 日韩中文字幕免费视频 | 亚洲经典在线 | 99久热在线精品视频成人一区 | 日韩一区二区三区在线观看 | 免费成人看片 | 制服丝袜一区二区 | 国产18精品乱码免费看 | 久久不卡视频 | 中文字幕在线观看你懂的 | 天天人人综合 | 成人欧美一区二区三区在线观看 | 久久精品久久久久久久 | 国产视频九色蝌蚪 | 在线免费观看成人 | 免费看黄在线看 | 欧美精彩视频在线观看 | 亚洲va天堂va欧美ⅴa在线 | 少妇超碰在线 | 成年人免费在线 | 999一区二区三区 | www.天天射 | 人人澡av | 久久久久国产精品免费免费搜索 | 国产精品免费在线播放 | 黄色大片国产 | 久久久久久久精 | 国产日韩欧美综合在线 | 天天操天天操天天操天天操 | 97久久精品午夜一区二区 | 国产高清小视频 | 国产又黄又硬又爽 | 欧美精品亚洲二区 | 亚洲日本中文字幕在线观看 | 久久久久久免费网 | 91精品在线免费观看视频 | 中字幕视频在线永久在线观看免费 | 国产精品人人做人人爽人人添 | 五月婷婷,六月丁香 | 日韩av区 | 国产精品国内免费一区二区三区 | 在线观看日本韩国电影 | 日本不卡久久 | 久久综合丁香 | 日韩在线观看视频在线 | 欧美日韩国产一区 | 日韩va欧美va亚洲va久久 | 中文字幕精品一区久久久久 | 国产高清成人在线 | 中文字幕在线免费97 | 国产精品永久久久久久久久久 | 免费视频a | 国产成人久久久77777 | 三级黄色网址 | 91麻豆精品国产91久久久更新时间 | 国产福利专区 | 日韩免费看片 | 久草香蕉在线 | 国产色女| 99久久精品电影 | 天天综合狠狠精品 | 99久久久国产精品美女 | 国产999精品久久久久久麻豆 | 亚洲在线精品 | 就要色综合 | 日本黄色大片免费 | 黄色av影视 | 亚洲精品资源在线 | 亚洲精品国产精品国自产在线 | 欧美成人亚洲 | 四虎成人精品永久免费av | 亚洲一区二区高潮无套美女 | 狠狠色丁香久久婷婷综合丁香 | 久久综合色一综合色88 | 国产精品一区二区av麻豆 | 又长又大又黑又粗欧美 | 免费看特级毛片 | a天堂在线看 | 中文字幕在线久一本久 | 亚州国产精品 | 在线国产激情视频 | 国产精品久久久久久久久久久杏吧 | 亚洲 欧美日韩 国产 中文 | 超碰97.com| 精品国产电影一区 | 精品亚洲男同gayvideo网站 | 欧美日韩有码 | 一区在线播放 | 免费在线观看黄网站 | 日韩精品亚洲专区在线观看 | 久久xx视频| 99热免费在线 | 日韩精品一区二区三区不卡 | 免费在线观看视频一区 | 国产精品热 | 99色视频在线 | 99国产高清| 69国产精品视频 | 蜜臀av性久久久久av蜜臀三区 | 亚洲国产精品电影 | 亚洲成人黄色av | 亚洲午夜精品一区 | 久久国产系列 | 欧美一级性生活 | 日日碰狠狠躁久久躁综合网 | 亚洲另类xxxx | 欧美极品少妇xbxb性爽爽视频 | 西西大胆免费视频 | 久久看看| 国产一区二区在线看 | 狠狠色噜噜狠狠狠狠2022 | 亚洲年轻女教师毛茸茸 | 日本精品视频在线 | 国产精品k频道 | 欧美视屏一区二区 | 成年人在线观看 | 色综合天天色综合 | 免费a v视频 | 91成人精品一区在线播放 | 免费福利视频导航 | 日韩电影黄色 | 欧美日韩在线网站 | 国产在线精品福利 | 久久久国产一区二区 | 亚洲精品色 | 色综久久| 在线观看日韩视频 | 麻豆91在线观看 | 亚欧洲精品视频在线观看 | 免费又黄又爽的视频 | 国产在线观看中文字幕 | 97人人模人人爽人人少妇 | a视频免费看 | 日韩在线观看 | 91成人精品一区在线播放 | 欧美片网站yy | 三级动图 | 天天做天天爱天天爽综合网 | 日韩在线视频不卡 | 国产永久免费观看 | 亚洲视频免费在线 | 精品人人爽 | 国产精品一区二区av | 欧美精品生活片 | 亚洲国产免费看 | 日韩av电影网站在线观看 | 欧美不卡视频在线 | 国产手机在线播放 | 国产精品剧情在线亚洲 | 午夜的福利 | 香蕉视频在线免费看 | 成人在线视频免费 | 亚洲日本中文字幕在线观看 | 亚洲视频在线观看免费 | 天天干夜夜爱 | 国产精品网址在线观看 | 日韩三级精品 | 日韩在线视频不卡 | 午夜视频在线观看一区二区 | 一区三区视频在线观看 | 主播av在线 | av高清免费 | 精品影院一区二区久久久 | 国产拍揄自揄精品视频麻豆 | 又爽又黄又无遮挡网站动态图 |