一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

怎樣使用XML實現多渠道接入網站的構架_Xml教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解讀從實際應用中了解WML
學習自然語言的最好方法就是溶入相應的語言環境在交流中學習,學習一種編程語言的最好方法就是看例程。為了幫助大家建立wml應用的第一印象,所以請大家先看第一個例子:

一.背景

在現在的網站中,接入的渠道是越來越多了,技術也是越來越先進,WAP, SMS,EMAIL, 傳統的Web, Socket等等,如果連數據庫和LDAP也算接入的話,那在設計之中需要擴展的空間要做到很好 很好,才保證在添加新的渠道情況下不需要更多的修改代碼甚至不改代碼的情況。但可能嗎?我想也不可能,但有什么方式可以更好的解決這種多渠道接入的框架的完美性呢?

二.構架

【圖一】

如圖一所顯示,在現有的所有接入都已經使用上的時候,設計者看的都眼花繚亂了,如果是為了湊份子,那這些程序怎么寫都可以,而且也肯定可以實現,但維護起來就會比較痛苦,還是回到那個問題,怎么可以實現更完美呢?如圖二顯示:

【圖二】

圖二看起來象個八爪的章魚,章魚腿分別連接所有的接入渠道,進行連接所有這些渠道的核心就是這個章魚的頭XMLRouter,Router在此的作用是溝通所有渠道,實現數據的路由,爭強系統在構架上的擴展性和靈活性,好處會很多很多。稱呼為XMLRouter是因為如果不使用XML這種靈活而又規范的語言來做為數據傳輸的媒介,那Router的工作量也同樣會成倍的增加,定義好XML的規范后將為以后的擴展帶來很多好處。

三.思想和模式

XMLRouter的最初想法來自于計算機的主板和<>之中的Builder Pattern, 計算機主板的PCI 插槽定義了PCI的規范,只要你生產的卡符合PCI標準,那你插入到這個主板上就可以工作, 至于里面是怎么工作的則是已經封裝好了. Builder Pattern則是提出將復雜的構建分離開來, 一步一步的進行實現.XMLRouter是將這些復雜的渠道分離開來,一個個的進行表現.

Services思想:為了能和Router進行溝通,在這些渠道接入時必須定義統一的接口,這里成為Services, 只要符合Services規范的程序就可以接入到Router并進行數據的路由.

Factory模式和Composite模式

XMLRouter在實際的設計中將采用Factory模式產生,Router由RouterFactory生產, 在投入使用時將放置于隊列中,傳遞數據和接收數據以及返回數據都從隊列中取相應的Router來調用,應用了Composite的模式.

四.XML配置文件

XML文件對于Router之中的使用分為兩個部分, 第一個是Router的配置,如:

以下是引用片段:
<?xml version="1.0" ?>
<services>
<!-- database Service -->
<service name="database" type="database" class="com.web.service.DBService">
<connector
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://192.168.0.179:1433" user="test"
passwd="test" />
</service>
<!-- Web Service-->
<service name="web" type="web" class="com.web.service.WebService" >
<connector />
</service>
……
</services>

這是Router的配置文件, service節點代表需要接入的渠道, service節點包含connector子節點, 子節點的配置根據type來區分, 如果是database則包含url, user, passwd,driver等屬性, 如果是socket則包含 port, maxthread等屬性, 屬性值可以根據自己的定義來配置.

另一種XML文件則是XML交易數據文件,用于在所有的services中傳遞數據,每個Services自己包涵一個相應的XML文件,比如webtrans.xml格式如下:

以下是引用片段:
<?xml version="1.0" ?>
<transaction>
<trans name="addDoc" service="database" method="insert">
<property name="createtime" type="timestamp"/>
<property name="creatorid" type="long"/>
<property name="doctypeid" type="int"/>
<property name="docstatusid" type="int"/>
</trans>
</transaction>

相應的dbtrans.xml格式如下

以下是引用片段:
<trans name="addDoc" table="TDOC_DOCS" method="insert">
<primarykey name="docid" />
<set>
<property name="createtime" type="timestamp"/>
<property name="creatorid" type="long"/>
<property name="doctypeid" type="int"/>
<property name="docstatusid" type="int"/>
</set>
</trans>


其余XML則可按這樣的規則來定制

五.技術實現

RouterFactory

以下是引用片段:
package com.web.router;
import com.web.platform.Exception.RouterException;
import java.util.java/util/Hashtable.java.html" target="_blank">Hashtable;

以下是引用片段:
/**
* Router產生和清除的類
*/
public class RouterFactory 
{
  /**
* Router存儲的樹front
*/
  private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairFront = null;
  /**
* Router存儲的樹back
*/
  private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairBack = null;
/**
* Router存儲的樹
*/
  private static java/util/Hashtable.java.html" target="_blank">Hashtable QueueRouter = null;

  /**
* 返回的XMLRouter
*/
  public static XMLRouter instance = null;
  /**
* Router的定義
*/
  public static RouterDefine routerdefine = null;
  /**
* Router的ID號
*/
  public static long routeIndex = 0;
  /**
* @roseuid 3F169C21027C
*/
  public RouterFactory() 
  {
  }
  /**
* 初始化Hashtable和Vector
*/
  public static void initFactory() throws java/lang/Exception.java.html" target="_blank">Exception
  {
  QueuePairFront = new java/util/Hashtable.java.html" target="_blank">Hashtable(); 
  QueuePairBack = new java/util/Hashtable.java.html" target="_blank">Hashtable(); 
  QueueRouter  = new java/util/Hashtable.java.html" target="_blank">Hashtable();
  initRouteDefine();
  }
/**
* 初始化Route的設置
* 
*/
  private static void initRouteDefine() throws java/lang/Exception.java.html" target="_blank">Exception
  {
  if( routerdefine == null )
  routerdefine = new RouterDefine();
  routerdefine.loadRouterDef();
  }
  /**
* 返回實例
* @return com.web.router.XMLRouter
*/
  public static XMLRouter getInstance(long index) throws RouterException
  {
return (XMLRouter)QueueRouter.get(new java/lang/Long.java.html" target="_blank">Long(index));
  }

  /**
* 產生一個XMLRouter的實例
* @return com.web.router.XMLRouter
* @roseuid 3F1618A103BC
*/
  public static XMLRouter popInstance() throws RouterException
  {
  routeIndex ;
  instance = new XMLRouter(routeIndex);
  setDefine( instance );
  QueueRouter.put(new java/lang/Long.java.html" target="_blank">Long(routeIndex), instance); 
return instance;
  }
  /**
* 清空Hashtable,Vector等
* @roseuid 3F1618B203C1
*/
  private static void freeResource() throws java/lang/Exception.java.html" target="_blank">Exception
  {
  QueuePairFront.clear();
  QueuePairBack.clear();
  QueueRouter.clear();
  QueuePairFront = QueuePairBack = QueueRouter = null;
}
  /**
* 清除實例
* @param instanceID
* @throws Exception
*/
  public static void removeInstance(XMLRouter instance) throws java/lang/Exception.java.html" target="_blank">Exception 
  {
  instance.clear();
QueueRouter.remove( new java/lang/Long.java.html" target="_blank">Long(instance.getIndex() ) ) ;
  }
/**
* Method isNull.
* @return boolean
*/
  public static boolean isNull()
  {
…… 
  return false;
  }
}

XMLRouter

以下是引用片段:
package com.web.router;
import com.web.platform.Exception.RouterException;
import com.web.common.*;
import java.util.*;
import java.lang.reflect.java/lang/reflect/Method.java.html" target="_blank">Method;
import java.lang.reflect.java/lang/reflect/Constructor.java.html" target="_blank">Constructor;
/**
* @author keli
* @version 0.0.1
* 平臺的關鍵,路由的類,每個Router將從RouterFactory里讀取
* Router存儲的樹front,和back,routeIndex,目的是為了能在路由
* 之后可以清除申請的對象。
* Router可以實現同步和異步的功能.
*/
public class XMLRouter 
{
  /**
* Router存儲的樹front
*/
private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairFront = null;
  /**
* Router存儲的樹back
*/
private static java/util/Hashtable.java.html" target="_blank">Hashtable QueuePairBack = null;
/**
* 本router的index號碼
*/
private long routeIndex = 0;
/**
* router的設置
*/
private RouterDefine define = null;
/**
* 用于判斷是路由的起回點
*/
private java/lang/String.java.html" target="_blank">String action = "";
/**
*此變量只是用于在routeto方法中申請新的class 
*/
private java/lang/String.java.html" target="_blank">String classname = "";
  /**
*/
  public XMLRouter(long index) 
  {
routeIndex = index;
  }
  /**
* 路由
* @throws Exception
* @roseuid 3F1616BD0186
*/
  public void routing(Env env) throws RouterException, java/lang/Exception.java.html" target="_blank">Exception 
  {
  /*如果為起點*/
if( action.equalsIgnoreCase( RouterConstant.CFG_FUNC_ROUTETO ) )
{
……
}
/*如果為返回點*/
else if( action.equalsIgnoreCase( RouterConstant.CFG_FUNC_ROUTEBACK ) )
{
……
}
/*否則為錯誤*/
else
throw new RouterException("Set Router action error.");
  }


/**
* 讀取本Router的id號.
* @return long
*/
public long getIndex()
{
  return routeIndex;
}

/**
* 清除所有對象.
* @throws RouterException
*/
public void clear() throws RouterException
{
QueuePairFront.remove(new java/lang/Long.java.html" target="_blank">Long(routeIndex));
QueuePairBack.remove(new java/lang/Long.java.html" target="_blank">Long(routeIndex));
/*系統回收*/
java/lang/System.java.html" target="_blank">System.runFinalization(); 
}

/**
* 設置本Router的設置.
* @param def
* @throws RouterException
*/
public void setDefine(RouterDefine def) throws RouterException
{
define = def;
} 
/**
* 設置action的值
* @param actionName
* @throws RouterException
*/
public void setAction( java/lang/String.java.html" target="_blank">String actionName )
{
action = actionName;
}
}

Service類

以下是引用片段:
package com.web.common;
import com.web.platform.Exception.RouterException;
/**
* Service的父類,abstract 
*/
public abstract class RouteService 
{
  /**
*/
  public RouteService() 
  {
  }
  /**
* routeTo方法,是交易的起點。
* @param env
* @throws RouterException
*/
  public abstract void routeto(Env env) throws RouterException;
  /**
* routeBack,交易的結束點,
* @param env
* @throws RouterException
*/
  public abstract void routeback(Env env) throws RouterException;
  /**
* routeaccept方法,是交易的接收點,也是routeto的接收函數,
* routeaccept為被動交易對象的主要處理函數
* @param env
* @throws RouterException
*/
  public abstract void routeaccept(Env env) throws RouterException;
  /**
* routing方法,是Service對外的接口函數
* @throws RouterException
*/
  public abstract void routing() throws RouterException;

接下來則需要實現所有的Services的類了,這里就不做介紹了.

六.說明

這個Router到目前為止只能實現同步的交易, 暫時不支持異步的交易,但是由于對Router使用了Composite的模式設計的,實現異步交易也是可以擴展的,這里不做詳細分析.

分享:解析XML數據查詢技術已經成為現今的研究熱點
XML(可擴展標記語言)已成為Web應用中數據表示和數據交換的標準,隨著Internet的快速發展,尤其是電子商務,Web服務等應用的廣泛使用,XML類型的數據成為當前主流的數據形式。因此XML數據的管理技術

來源:模板無憂//所屬分類:Xml教程/更新時間:2009-08-01
相關Xml教程
久久国产视频网| 欧美日韩黄色一区二区| 中文字幕+乱码+中文乱码www| 日韩精品另类天天更新| 欧美国产亚洲视频| 555夜色666亚洲国产免| 三级网站免费看| 国产精品综合不卡av| 日韩中文在线字幕| 中文字幕成人精品久久不卡| 欧美视频精品在线观看| 中文字幕免费观看| 日韩欧美理论片| 成人在线观看一区二区| 久热这里只有精品在线| av一区二区三区| 亚洲私人影院在线观看| 欧美日本一区二区| 欧美日韩中字一区| www成人在线观看| 精品国产18久久久久久| 91国内精品久久久| 大伊香蕉精品视频在线| 99久久99久久| 免费黄色a级片| 欧美一区二区三区在线免费观看| 3d动漫啪啪精品一区二区免费| 精品中文字幕视频| 亚洲电影在线免费观看| 国产欧美一区二区三区鸳鸯浴 | 久久婷婷久久| 日韩欧美色综合网站| 免费中文日韩| 亚洲婷婷在线观看| 久久久久久久久久久一区 | 久久久久成人精品无码| 亚洲日本欧美在线| 久久免费视频观看| 亚洲成人av免费看| 国产黑丝在线视频| 国内精品久久99人妻无码| 国产美女主播在线播放| 国内一区在线| 日韩欧美国产综合在线| 91网址在线观看精品| 欧美图片自拍偷拍| 亚洲一区三区电影在线观看| 国产精品久久国产三级国电话系列| 97香蕉超级碰碰久久免费的优势| 婷婷成人综合网| 一区二区在线观看免费视频播放| 亚洲男人天堂2024| 亚洲成人久久网| 中文字幕国产精品久久| 欧美日韩在线免费| 欧美日韩视频免费播放| 欧美黄色免费网站| 99久久99精品| 国产精品黄色在线观看| 91九色国产社区在线观看| 日韩无码精品一区二区| 9i看片成人免费看片| 精品无码av在线| 中文字幕视频一区二区| 久久久久99精品一区| 亚洲欧美另类小说| 国产高清中文字幕| 性色av蜜臀av浪潮av老女人| xxxxxx在线观看| 免费看av软件| www.av视频在线观看| 尤物在线免费视频| 激情成人综合网| 欧日韩精品视频| 日韩中文字幕二区| 国产精品狼人久久影院观看方式| 国产精品吊钟奶在线| 中文字幕在线2021| 国产精品一二三区| 亚洲电影激情视频网站| 最近2019免费中文字幕视频三| 国产极品jizzhd欧美| 中文字幕亚洲欧美在线| 成人性生交大片免费看视频直播 | 国产成人精品视频免费看| 一本在线免费视频| 久久综合丝袜日本网| 国产专区第一页| 国产精品成人一区二区艾草| 国产66精品久久久久999小说| 日本免费网站视频| 日韩西西人体444www| 奇米视频7777| 久久免费电影网| 欧美三级日韩在线| 国产欧美一区二区三区久久 | 91免费精品国偷自产在线| 性猛交娇小69hd| 黄色一级在线视频| 福利在线一区二区| 黄色动漫网站入口| 亚洲久久中文字幕| 麻豆精品久久久| 国产亚洲精品va在线观看| 国产日韩欧美综合| 中国美女乱淫免费看视频| 一级特黄免费视频| 狠狠操狠狠色综合网| 菠萝蜜影院一区二区免费| 欧美亚洲国产精品| 欧美重口乱码一区二区| 久久美女免费视频| 亚洲国产精品久久久久久6q| 一本久道久久综合中文字幕| 99在线视频首页| 91美女高潮出水| 亚洲欧洲日韩综合| 亚洲国产精品久久久| 国产精品一 二 三| 特级西西444www大精品视频免费看| 日韩欧美一级特黄在线播放| 欧美视频一区二区三区…| 一区精品视频| 日韩av午夜在线观看| 日韩美女爱爱视频| 欧美性猛交一区二区三区精品| 亚洲天堂网一区二区| 欧美久久久久久久久久| 亚洲综合欧美日韩| 国产精品久久久国产盗摄| 欧美一区二区三区免费| 隔壁人妻偷人bd中字| 国产成人综合视频| 亚洲丝袜制服诱惑| 精品久久久久久无| 国产欧美日韩最新| 欧美黄色性生活| 熟妇人妻av无码一区二区三区| 欧洲中文字幕国产精品| 一道本在线观看| 欧美午夜女人视频在线| 激情视频免费网站| 国产女人18毛片水真多成人如厕| 亚洲ai欧洲av| 国产伦精品一区二区三区视频痴汉 | 日韩欧美一级二级三级久久久| 中文字幕精品av| 美国av一区二区三区| 一级女性全黄久久生活片免费| 国产91成人在在线播放| av网站在线观看免费| 欧美成人免费全部观看天天性色| 日本xxx免费| 亚洲精品一二三四| 国产成人免费xxxxxxxx| 亚洲最新视频在线观看| 精品香蕉一区二区三区| 成人福利在线视频| 五月天激情视频在线观看| 亚洲国产精品成人无久久精品| 婷婷色在线视频| 国产在线观看不卡| 日韩精品乱码免费| 91|九色|视频| 成人午夜在线播放| 国产精品综合久久久久久| 精品伦精品一区二区三区视频密桃| 欧美日韩在线免费视频| 国产日韩视频一区| 一区二区三区日韩欧美| 亚洲成人精品电影在线观看| 久久综合亚州| 潘金莲一级淫片aaaaaaa| 精品电影一区二区| 99久久人妻无码精品系列| 亚洲视频在线免费观看| 大胸美女被爆操| 久久久噜噜噜久久中文字幕色伊伊| 日韩成人午夜影院| 精品香蕉一区二区三区| 国产一区二区三区四区在线观看| 久久av一区二区三| 久久99精品久久久久久久青青日本| 在线观看国产一区二区| 动漫av在线免费观看| 欧美草草影院在线视频| 一色道久久88加勒比一| 7777精品伊人久久久大香线蕉经典版下载 | 久久久一二三四| 亚洲精品网站在线| 九九久久久久久久久激情| 99精品欧美一区二区| 91精品国产综合久久小美女| 亚洲图片中文字幕| 欧美日韩国产不卡在线看| 久久99精品久久久久婷婷| 日本精品一区在线观看| 一本大道久久a久久精二百| 国产精品1区2区在线观看| 国产女优在线播放| 日本精品在线视频| 内射后入在线观看一区| 91久久在线播放| 日韩国产一区二| 国产精品久久久久久久久久久久冷| 另类专区欧美蜜桃臀第一页| 精品日韩电影| 97久久精品人人爽人人爽蜜臀| 亚洲精品视频一区二区三区| 久久免费精品国产久精品久久久久| 一区二区精品国产| 中文字幕中文字幕一区| 国产精品无码专区av在线播放 | 一区二区欧美日韩视频| 久久97人妻无码一区二区三区| 北条麻妃一区二区三区中文字幕 | 亚洲成人免费看| 91成人在线观看喷潮蘑菇| 精品电影一区二区三区| 日本少妇做爰全过程毛片| 97在线日本国产| 婷婷五月综合激情| 欧美综合激情| 亚洲精品你懂的| 3d动漫精品啪啪一区二区下载| 国产丝袜高跟一区| 亚洲天堂久久久久| 国产精品国模大尺度私拍| 99久久免费视频.com| 大香煮伊手机一区| 日韩欧美中文一区二区| 91蜜桃视频在线观看| 国产激情视频一区| 成人av在线电影| 天天综合网日韩| 日韩成人xxxx| 国产日本精品视频| 日本一区二区在线视频| 亚洲婷婷综合久久一本伊一区| 亚洲一区二区在线免费| 色妞色视频一区二区三区四区| 国产男女无套免费网站| 日韩啊v在线| 精品久久久久久中文字幕大豆网 | 视频一区二区在线观看| 亚洲精品视频免费观看| 日韩不卡av在线| 欧洲精品毛片网站| 久久亚洲精精品中文字幕早川悠里| 香蕉视频999| 亚洲午夜未删减在线观看 | 欧美日韩国产影片| 日本高清不卡码| 久久影视中文粉嫩av| 一区二区三区产品免费精品久久75| 99久久久无码国产精品衣服| 91成人天堂久久成人| 99re视频这里只有精品| 日本久久久久久久久久| 欧美精品在线极品| 国产凹凸在线观看一区二区| 在线观看日本www| 欧美成人精品影院| 99视频国产精品| 日本免费福利视频| 国产精品第一区| 国产精品国产自产拍高清av王其 | 国产精品不卡一区二区三区| 国产第一页精品| 99国产超薄肉色丝袜交足的后果| 亚洲国产美国国产综合一区二区| 国产无码精品久久久| 国产中文一区二区| 欧美日韩一区高清| 理论片中文字幕| 青青草精品视频在线观看| 久久久精品2019中文字幕神马| 国产美女娇喘av呻吟久久| 激情小说欧美色图| 国产日韩欧美黄色| 精品久久久久久电影| 中文字幕人妻丝袜乱一区三区| 日韩中文字幕亚洲精品欧美| 亚洲国产小视频在线观看| 日本视频一区二区三区| 国产高清999| 国产精欧美一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 国产成人精品片| 久久久久久www| xvideos成人免费中文版| 欧美国产成人精品| 在线观看 中文字幕| 色爽爽爽爽爽爽爽爽| 亚洲欧美精品一区| 久久综合色综合88| 西西44rtwww国产精品| 色婷婷777777仙踪林| 亚洲性线免费观看视频成熟| 99re6这里只有精品视频在线观看| 91香蕉视频在线播放| 久久亚洲免费| 亚洲精品久久久久久下一站| 处破女av一区二区| 一区二区视频免费看| 国产1区2区3区中文字幕| 久久天天躁狠狠躁夜夜躁| 亚洲精品网站在线观看| 国产精品久久久久久久久久久久久久久久 | 亚洲日本电影在线| 亚洲中文字幕一区二区| 天天干天天曰天天操| 成人在线观看av| 亚洲国产精品视频在线观看| 不卡一区二区在线| 日本一区二区三区免费视频| 欧美成人免费高清视频| 国产精品嫩草视频| 欧美电影一区二区三区| 国产91精品在线观看| 好吊操这里只有精品| 国产精品无码av无码| 亚洲综合成人婷婷小说| 日韩久久免费电影| 亚洲精品乱码久久久久久| 丰满熟妇人妻中文字幕| 久久久精品成人| 国产 日韩 亚洲 欧美| 国产精品久久电影观看| 精品成人一区二区| 国产精品久久久久三级| 欧美自拍偷拍一区二区| 少妇无套高潮一二三区| 欧美 日韩 亚洲 一区| 国产精品一香蕉国产线看观看 | 女同性恋一区二区| 日韩av片电影专区| 亚洲国产成人在线视频| 亚洲精品国产无天堂网2021| 日本不卡视频在线| 日韩xxx高潮hd| 91视频在线免费| 中文字幕第一页亚洲| 国产精品久久久久久久久久99| 精品亚洲夜色av98在线观看| 亚洲国产视频直播| 高清国产午夜精品久久久久久| 91精品国产综合久| 影音先锋男人看片资源| 爆乳熟妇一区二区三区霸乳| 欧美一区二区三区四区五区六区| 91成人精品网站| 亚洲欧美日韩国产中文专区| 欧美日韩性生活视频| 99久久99久久精品免费观看| 欧美一区,二区| 久久免费精彩视频| 中文在线永久免费观看| 久久国产乱子伦免费精品| 欧洲成人一区二区| 91精品国产综合久久香蕉的用户体验| 亚洲色图综合网| 欧美一区二区视频免费观看| 亚洲一区二区偷拍精品| 久久久美女毛片| 久久电影国产免费久久电影| 91久久久久国产一区二区| 国产女片a归国片aa| 日韩av无码一区二区三区不卡| 蜜臀av无码一区二区三区| 先锋影音一区二区三区| 91久色国产| 国产不卡精品视男人的天堂 | 亚洲国产视频a| 99久久久无码国产精品| 日本成人中文字幕在线视频 | 欧美午夜激情影院| 久久无码人妻一区二区三区| 无码人妻丰满熟妇区毛片18| 大桥未久一区二区| 欧洲一区二区日韩在线视频观看免费| 91久久精品日日躁夜夜躁国产| 欧美一区亚洲一区| 国内精品久久久久久| 久久99精品久久久久久噜噜| 少妇av一区二区三区| 精品视频偷偷看在线观看| 亚洲成avwww人| 精品国一区二区三区| 欧美一区二区三区啪啪| 欧美丰满一区二区免费视频| 在线一区二区三区四区五区| 精品久久久在线观看| 亚洲高清视频中文字幕| 一区二区国产盗摄色噜噜| 亚洲精品视频在线看| 综合欧美一区二区三区| 国产精品国产三级国产有无不卡| 久久久久久亚洲综合影院红桃| 不卡电影一区二区三区| ww久久中文字幕| 国产亚洲精品久| 亚洲国产成人午夜在线一区| 国产日韩欧美不卡在线| 国产人成亚洲第一网站在线播放| 欧美激情综合五月色丁香小说| 中文字幕中文在线不卡住| 亚洲精品视频自拍| 色婷婷久久综合| 91精品国产综合久久精品性色|