亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

ASP服務器端組件編程實例1

系統 2077 0

[前言:] ASP 編寫服務器端應用程序時,必須依靠組件提供的強大的Web應用程序的功能,熟練使用ASP內建的以及第三方廠商提供的組件可以極大的提高開發效率。

Ad Rotator 組件參考
  Ad Rotator組件創建一個Ad Rotator對象,該對象在Web頁上自動輪換顯示廣告圖像。當用戶每次打開或重新加載Web頁時,Ad Rotator組件將根據在Rotator Schedule文件中指定的信息顯示一個新廣告。

  可以記錄每個廣告被多少個用戶單擊訪問,方法是在Rotator Schedule文件中設置一個URL參數,將用戶定向到重定向文件中。如果指定了此參數,那么當每次跳轉到一個廣告客戶的URL時,都會在Web服務器的活動日志中作相應的記錄。關于活動日志的詳細信息,請參閱記錄Web站點活動。

  文件名

  adrot.dll Ad Rotator組件。

  重定向文件 可選文件,用于實現重定向并允許Ad Rotator組件記錄每個廣告被多少個用戶單擊訪問。

  Rotator Schedule文件文本文件,包含廣告的顯示計劃和文件信息。此文件必須在Web服務器的某個虛擬路徑上可用。

  語法

  Set AdRotator = Server.CreateObject("MSWC.AdRotator")

  參數

  AdRotator 指定AdRotator對象的名稱,此對象通過調用Server.CreateObject創建。

  注冊表項

  無。

  屬性

  Border指定廣告邊框的大小。

  Clickable指定廣告是否為超鏈接。

  TargetFrame 指定顯示廣告的框架的名稱。

  方法

  GetAdvertisement從數據文件中獲取下一個計劃廣告的詳細說明并將其格式化為HTML格式。

  示例

  下面的示例在用戶每次查看Web頁時顯示不同的廣告。

  <% Set ad = Server.CreateObject("MSWC.AdRotator") %>
  <%= ad.GetAdvertisement("/ads/adrot.txt") %>

  下面的HTML由GetAdvertisement方法生成且被添加到網頁的輸出中,以便顯示Rotator Schedule文件中的下一個廣告。

  <A >

  <IMG SRC="http://msnnt3web/ads/homepage/chlogolg.gif" ALT="Check out the new Technology Center" WIDTH=440 HEIGHT=60 BORDER=1></A>

  Rotator Schedule文件包含的Ad Rotator組件用于管理和顯示各種廣告圖象的信息。在該文件中,用戶可以指定廣告的細節,例如廣告的空間大小、使用的圖象文件以及每個文件的顯示時間所占百分比。

  Rotator Schedule文件由兩部分組成。第一部分設置應用于輪換安排中所有廣告圖象的參數;第二部分指定每個單獨廣告的文件和位置信息以及應當接收的每個廣告的顯示時間所占百分比。這兩部分由全是星號(*)的一行隔開。

  在第一部分中有四個全局參數,每個參數都由一個關鍵字和值組成。所有的參數都是可選的。如果用戶未指定全局參數的值,則Ad Rotator將使用默認的值。在這種情況下,文件的第一行必須只有一個星號(*)。

  語法

  [REDIRECT URL]
  [WIDTH numWidth]
  [HEIGHT numHeight]
  [BORDER numBorder]
  *
  adURL
  adHomePageURL
  Text
  impressions

  參數

  URL

  指定動態鏈接庫(.dll)或執行重定向的應用程序(.asp)文件的路徑。該路徑必須是完整的(http://MyServer/MyDir/redirect.asp)或相對的虛擬目錄(/MyDir/redirect.asp)。

  numWidth

  以像素為單位指定網頁上廣告的寬度。默認值是440個像素。

  numHeight

  以像素為單位指定網頁上廣告的高度。默認值是60個像素。

  numBorder

  以像素為單位指定廣告四周超鏈接的邊框寬度。默認值是1個像素。如果將該參數設置為0,將沒有邊框。

  adURL


  廣告圖象文件的位置。

  adHomePageURL

  廣告主頁的位置。如果廣告客戶沒有主頁,請在該行寫上一個連字符(-),指出該廣告沒有鏈接。

  Text

  在瀏覽器不支持圖形或關閉圖象功能的情況下顯示的替代文字。

  impressions

  從0到4,294,967,295的數,指出廣告的相對權值。

  例如,如果Rotator Schedule文件包含3個廣告,其impressions分別設為2、3和5,則第一個廣告占用20%的顯示時間,第二個占用30%的顯示時間,第三個占用50%的顯示時間。

  示例

  下面的腳本演示是如何使用Rotator Schedule文件顯示各種廣告以及如何包含重定向文件。

  ---ADROT.TXT---

REDIRECT /scripts/adredir.asp WIDTH 440 HEIGHT 60 BORDER 1 *
  http://kabaweb/ads/homepage/chlogolg.gif http://www.bytecomp.com/Check out the ByteComp
  Technology
  Center20 http://kabaweb/ads/homepage/gamichlg.gif -Sponsored by Flyteworks20 http://kabaweb/ads/homepage/ismodemlg.gif http:// www.proelectron.com/28.8 internal PC modem, only $99 80 http://kabaweb/ads/homepage/spranklg.gif http://www.clocktower.com/The #1 Sports site on the net 10

  重定向文件是用戶創建的文件。它通常包含用來解析由 AdRotator 對象發送的查詢字符串的腳本并將用戶重定向到與用戶所單擊的廣告所相關的URL。

  用戶也可以將腳本包含進重定向文件中,以便統計單擊某一特定廣告的用戶的數目并將這一信息保存到服務器上的某一文件中。

  示例

  下面的示例將用戶重定向到廣告客戶的主頁。

  ---ADREDIR.ASP---

  <% Response.Redirect(Request.QueryString("url")) %>

  AdRotator 對象有下列屬性:

  一.Border

  二.Clickable

  三.TargetFrame

  1.Border 屬性允許用戶指定顯示廣告時四周是否帶邊框。

  語法

  Border = size

  參數

  size

  指定顯示的廣告四周的邊框寬度。其默認值在 Rotator Schedule 文件的文件頭中設置。

  示例

  下面的例子顯示不帶邊框的廣告。

  <% Set ad = Server.CreateObject("MSWC.AdRotator") ad.Border = 0 %>
  <%= ad.GetAdvertisement("/ads/adrot.txt") %>

  2.Clickable

  Clickable 屬性允許用戶指定是否將廣告作為超鏈接顯示。

  語法

  Clickable = value

  參數

  value

  指定廣告是否為超鏈接。此參數可為下列值之一。默認值是TRUE。值意義:TRUE 將廣告作為超鏈接顯示。

  FALSE 將廣告不作為超鏈接顯示。

  示例

  下面的示例只將廣告作為圖像顯示,而不是作為超鏈接。

  <% Set ad = Server.CreateObject("MSWC.AdRotator") ad.Clickable = FALSE %>
  <%= ad.GetAdvertisement("/ads/adrot.txt") %>

  3.目標框架

  TargetFrame 屬性指定鏈接將被裝入的目標框架。該屬性完成的功能等價于 HTML 語句中的 TARGET 參數。

  語法

  TargetFrame = frame

  參數

  frame

  指定用來顯示廣告框架的名稱。該參數也可以是一個 HTML 框架關鍵字, 例如 _TOP、_NEW、_CHILD、_SELF、_PARENT 或 _BLANK。默認值是 NO FRAME。

  示例

  下面的例子顯示框架 AdFrame中的廣告。

  <% Set ad = Server.CreateObject("MSWC.AdRotator") ad.TargetFrame = AdFrame %>
  <%= ad.GetAdvertisement("/ads/adrot.txt") %>

  AdRotator 對象只有一個方法.GetAdvertisement

  GetAdvertisement 方法從 Rotator Schedule 文件中獲取下一個廣告。每次運行腳本時,例如當用戶打開或刷新一頁時,此方法會獲取下一個安排的廣告。

  語法

  GetAdvertisement(rotationSchedulePath)

  參數

  rotationSchedulePath

  指定 Rotator Schedule 文件相對于虛擬目錄的位置。例如,若物理路徑為 C:\Inetpub\Wwwroot\Ads\Adrot.txt(其中Wwwroot 是 "/" 虛擬目錄)則應指定路徑 \Ads\Adrot.txt。

  返回值

  返回在當前頁中顯示廣告的 HTML。

  示例

  下面的示例從 Adrot.txt 文件中獲取廣告,此文件位于 /Ads/ 虛擬目錄下。

  <% Set NextAd = Server.CreateObject("MSWC.AdRotator") %>

  <%= NextAd.GetAdvertisement("/ads/adrot.txt") %>

瀏覽器性能組件
  對于ASP的擴展組件,有些大家已耳熟能詳,有些則還陌生的很,寫這篇文章的的意圖無非想拋磚引玉,在各位對ASP幾大對象已爛熟于心時,不妨玩玩一些不常用的可擴展組件,相信會對各位的ASP編程有很大的啟發。(這篇文章的內容來自MSDN,對其了若指掌的朋友自不必看。還有,小妹的耐 心不好,如果寫完了這篇沒有長性就此罷筆,望各位在大罵的時候留點口德,多謝多謝。):b

  [center]Browser Capabilities Component——瀏覽器性能組件[/center]

  瀏覽器性能組件創建一個瀏覽器類型(BrowserType)對象用以向你的腳本描述客戶端瀏覽器能力。

  一旦一個瀏覽器連接到Web服務器,瀏覽器會自動將一串用戶代理HTTP報頭(User Agent HTTP Header)傳送到服務器。該報頭為一ASCII字符串用以識別該瀏覽器及其版本號。瀏覽器類型(BrowserType)對象將該報頭與Browsercap.ini文件中的條目進行比較。

  如果找到匹配的條目,瀏覽器類型(BrowserType)對象假設該瀏覽器具備Browsercap.ini文件中所描述的屬性。

  如果對象沒有在Browsercap.ini文件中找到與報頭匹配的條目,瀏覽器類型(BrowserType)對象假設該瀏覽器具備默認瀏覽器的屬性。如果沒有匹配條目并且Browsercap.ini文件沒有定義默認瀏覽器的各項設置,則瀏覽器類型(BrowserType)對象將該瀏覽器的各項屬性值賦為“Unkown”。

  通過升級Browsercap.ini文件,你可以方便的把瀏覽器屬性或者對新瀏覽器的描述加入到這個組件(稍候介紹如何升級Browsercap.ini文件)。

  文件名

  Browsercap.dll 瀏覽器性能組件

  Browsercap.ini 一個用以描述瀏覽器屬性的文本文件,該文件必須和Brwosercap.dll文件處于同一目錄下

  語法

  Set BrowserType = Server.CreateObject("MSWC.BrowserType")

  參數

  BrowserType——用Server.CreateObject語句創建的瀏覽器類型(BrowserType)對象的名字

  注冊條目

  無需注冊

  例子

  以下例子給出如何用瀏覽器性能組件取得當前瀏覽器一些屬性。

<% Set bc = Server.CreateObject("MSWC.BrowserType") %>
<table border=1>
<tr><td>Browser</td><td> <%= bc.browser %> </td></TR>
<tr><td>Version</td><td> <%= bc.version %> </td></TR>
<tr><td>Frames</td><td>
<% if (bc.frames = TRUE) then %> TRUE
<% else %> FALSE
<% end if %> </td></TR>
<tr><td>Tables</td><td>
<% if (bc.tables = TRUE) then %> TRUE
<% else %> FALSE
<% end if %> </td></TR>
<tr><td>BackgroundSounds</td><td>
<% if (bc.BackgroundSounds = TRUE) then %> TRUE
<% else %> FALSE
<% end if %> </td></TR>
<tr><td>VBScript</td><td>
<% if (bc.vbscript = TRUE) then %> TRUE
<% else %> FALSE
<% end if %> </td></TR>
<tr><td>JScript</td><td>
<% if (bc.javascript = TRUE) then %> TRUE
<% else %> FALSE
<% end if %> </td></TR>
</table>

  Browscap.ini文件

  你可以在Browscap.ini文件中描述任意多個瀏覽器的屬性。你也可以設置一套默認屬性,當瀏覽器發送的報頭無法和Browscap.ini中的任何條目匹配時,瀏覽器類型(BrowerType)對象會假設該瀏覽器具備默認的屬性。

  每個瀏覽器定義由一個HTTP報頭、一些屬性名以及相關屬性值構成。關于各種瀏覽器的HTTP報頭的定義可參考[link]http://www.w3.org/[/link]網站中的內容。

  語法

[; comments]
[HTTPUserAgentHeader]
[parent = browserDefinition]
[property1 = value1]
...
[propertyN = valueN]

[Default Browser Capability Settings]
[defaultProperty1 = defaultValue1]
...
[defaultPropertyN = defaultValueN]


  參數

  comments

  注釋,以;開頭的任意多行

  HTTPUserAgentHeader

  HTTP用戶代理報頭,類似于以下格式[Mozilla/2.0 (compatible; MSIE 3.0;* Windows 95)],其中可以使用通配符*。

  browserDefinition

  用以定義父類的HTTP報頭

  propertyN

  瀏覽器的屬性名,可從屬性列表中選取所需的屬性(詳細列表見附錄)

  valueN

  瀏覽器的屬性值

  defaultPropertyN

  默認瀏覽器的屬性名,可選屬性同propertyN

  defaultValueN

  默認瀏覽器的屬性值

  例子

;;ie 4.0
[IE 4.0]
browser=IE
Version=4.0
frames=TRUE
tables=TRUE
cookies=TRUE
backgroundsounds=TRUE
vbscript=TRUE
javascript=TRUE
javaapplets=True
ActiveXControls=TRUE
beta=False

;;ie 4.01
[Mozilla/2.0 (compatible; MSIE 4.01*; Windows 95)]
parent=IE 4.0
version=4.01
minorver=01
platform=Win95

; Default Browser
[Default Browser Capability Settings]
browser=Default
frames=FALSE
tables=TRUE
cookies=FALSE
backgroundsounds=FALSE
vbscript=FALSE
javascript=FALSE

  附錄——瀏覽器屬性列表

屬性名 描述
ActiveXControls 指定瀏覽器是否支持ActiveX控件
backgroundsounds 指定瀏覽器是否支持背景音樂
beta 指定瀏覽器是否是測試版
browser 指定瀏覽器的名字
cdf 指定瀏覽器是否支持Web發布的頻道解釋定義(Channel Definition Format)
cookies 指定瀏覽器是否支持cookies
frames 指定瀏覽器是否支持幀顯示
Javaapplets 指定瀏覽器是否支持Java applets
javascript 指定瀏覽器是否支持javascript
platform 指定瀏覽器運行所需的操作系統
tables 指定瀏覽器是否支持表格
vbscript 指定瀏覽器是否支持vbscript
version 指定瀏覽器的版本

注:以上解釋內容為“指定瀏覽器是否支持”開頭的屬性,其屬性值應為True/False,其余為字符串
細說ASP中Counters 組件
概述

  Counter 組件創建一個可創建、存儲、增長和檢索任何數量的獨立計數器的 Counters 對象。

  計數器是一個包含整數的持續值。可以使用 Counters 對象的 Get、Increment、Set 和 Remove 方法控制計數器。一旦您創建了計數器,它將一直持續下去直到被刪除為止。

  計數器不會在一個事件比如訪問一頁時自動增加。您必須使用 Set 和 Increment 方法人工的設置或增長計數器。

  計數器不受作用域限制。一旦您創建了一個計數器,那么您的站點上的任何頁都可以檢索和控制它的值。例如,若您在一個名為 Page1.asp 的頁上顯示和增加一個叫做 hits 的計數器的值,而又在另一個叫做 Page2.asp 的頁上增加 hits 的值,則兩頁將增加同一計數器。若您訪問 Page1.asp 時,計數器的值增加到 34,則訪問 Page2.asp 會將 hits 增加到 35。下一次訪問 Page1.asp,hits 將增加到 36。

  所有計數器都存儲在一個單獨的名為 counters.txt 的文本文件中,它同 counters.dll 文件存儲在同一目錄下。

  文件名

  counters.dll Counters 組件。

  counters.txt 該文件在一個站點上存儲所有獨立的計數器。counters.txt 是一個 UTF8 編碼文件。您可以在計數器名稱中使用任何 Unicode 字符。

  語法

  將下列內容加入到 global.asa 文件中在您的服務器上可一次性創建 Counters 對象:

<OBJECT
RUNAT=Server
SCOPE=Application
ID=Counter
PROGID="MSWC.Counters">
</OBJECT>


  注冊表項

  無。

  注釋

  在您的站點上僅創建一個 Counters 對象。這一單個 Counters 對象可以創建任意數量的獨立計數器。

   注意 對于 Windows? 95 上的 Personal Web Server,已在默認的虛擬目錄下的 global.asa 文件 中指定了一個 Counters 組件。可以通過調用 Counters.Get、Counters.Increment、Counters.Remove 和 Counters.Set 使用組件創建的 Counters 對象,就好象它是內建的一樣。您不可以創建 Counters 對象的其他實例。

  方法

  Get 返回計數器的值。

  Increment 計數器的值加一。

  Remove 從 counters.txt 文件中刪除計數器。

  Set 將計數器的值設為一個特定的整數。

  示例

  通過將 ID 屬性設置為 Counter,在 global.asa 文件中創建 Counters 對象的實例:

  <OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters">
  </OBJECT>

  然后就可以在某一頁上使用 Counters 對象創建全部所需的計數器:

  There have been <%= Counter.Increment('defaultPageHits') %> to this site.

  然后在另一頁上就可以使用下列方法增加計數器的值:

  You are visitor number<%= Counter.Increment('LinksPageHits') %> to this page.

  注意 該組件可從包含 IIS IIS Resource Kit 的 CD 中得到。

Get方法

  Get 方法根據計數器的名稱返回此計數器的當前值。若此計數器不存在,則該方法創建它并將其置為 0。

  語法

  Counters.Get(CounterName)

  參數

  CounterName

  包含計數器名稱的字符串。

  示例

  用 <%= Counters.Get(CounterName) %> 可顯示計數器的值。用 <% countervar = Counters.Get(CounterName) %> 將計數器的值賦給一個變量。

  下列腳本顯示關于所喜愛的顏色的民意測驗的投票記分。

<% If colornumber = "1" Then
Counters.Increment("greencounter")
Else
If colornumber = "2" Then
Counters.Increment("bluecounter")
Else
If colornumber = "0" Then
Counters.Increment("redcounter")
End If
End If
End If %>
<P>Current vote tally:
<P>red: <% =Counters.Get("redcounter") %>
<P>green: <% = Counters.Get("greencounter") %>
<P>blue: <% = Counters.Get("bluecounter") %>

Increment方法

  Increment 方法根據計數器的名稱,將該計數器的值加 1,并返回計數器的新值。若計數器不存在,此方法將創建該計數器并將其值設為 1。

  語法

  Counters.Increment(CounterName)

  參數

  CounterName

  包含計數器值的字符串。

  示例

  使用 <% Counters.Increment(CounterName) %> 可增加計數器的值。使用 <%= Counters.Increment(CounterName) %> 可增加和顯示計數器的值。

  為了獲取計數器的值,可使用 Counters.Get。要將計數器的值設為一個特殊值,請使用 Counters.Set。

  下列代碼實現聯機頁訪問計數器。

  <P>There have been <%= Counters.Increment("hits") %> visits to this Web page.
  </P>

  在上面的示例中,每次客戶端向服務器發出頁請求時,都使用 Counters.Increment 將計數器的值加 1。

  Remove方法

  Remove 方法根據計數器的名稱,從 Counters 對象和 counters.txt 文件中刪除計數器。

  語法

  Counters.Remove(CounterName)

  參數

  CounterName

  包含計數器名稱的字符串。

  示例

  下列代碼從 counters.txt 文件中刪除計數器 hitscounter 。

  <% Counters.Remove(hitscounter) %>

Set方法

  Set 方法根據計數器的名稱和一個整數參數,將計數器設置為該整數值,并返回此新值。若該計數器不存在,則 Counters.Set 創建計數器并將其值設為這一整數。

  要獲取計數器的值,可使用 Counters.Get。要使計數器的值加一,可使用 Counters.Increment。

  語法

  Counters.Set(CounterName, int)

  參數

  CounterName

  包含計數器名稱的字符串。

  int

  CounterName 的新的整數值。

  示例

  下列代碼將訪問計數器 pageHits 重置為 0。

  <% Counters.Set(pageHits, 0) %>
用CDO組件來發郵件
  我們這里來玩玩發郵件的功能,當然,我們不能向perl,php一樣有內置的發郵件的東東,嘿嘿!我們還是得用組件,不過,這個組件可不需要你花錢的啊!它是iis中SMTP中自帶的! 我們來對其發郵件的功能來一次快閃吧!

   Set cdo=Server.CreateObject("CDONTS.NewMail")
   cdo.send "webmaster@aspcn.com","dd@263.net","ASP中華網的來信","你好啊!",0
   Set cdo=Nothing

  !!!!???就這么的短!!!不可能吧!

  嘿嘿,你來試試,如果你有服務器,把dd@263.net改成你的電子郵件,再把這個代碼拿到上面去試試,你一定能夠收到信的!

  這是發信的最直接的方法!格式是:

   cdo.send fromAddress,ToAddress,Subject,Body,Importance

  當然,我們要讓它復雜一點也是可以的,我們來看看,把上面的例子寫詳細點!

Set cdo=Server.CreateObject("CDONTS.NewMail")
cdo.From="webmaster@aspcn.com"
cdo.To="dd@263.net"
cdo.Subject="ASP中華網的來信"
cdo.Body="你好啊!"
cdo.MailFormat=0
cdo.BodyFormat=0
cdo.Importance=0
cdo.Send
Set cdo=Nothing


  這樣大家都看清楚了吧!

  里面有幾個要解釋一下咯!


  Importance是指郵件的重要性,0是表示低重要性,1表示正常,2表示高重要

  bodyFormat是指郵件的正文的格式,0表示HTML格式,1表示普通文本

  MailFormat是指郵件的格式,是文本消息(1),還是MIME格式(0)

  我們還可以為郵件加附件,只需一句:

  cdo.AttachFile "c:\du\asp.gif"

  很簡單吧!

  好了,發郵件就這么多了,你們快回去發自己的第一封用ASP發出來的信吧!

  以后再講講用ASP來收取本服務器上郵件吧!

from

其他文章:

ASP 編程中20個非常有用的例子[轉]

在ASP中調用dll

軟件構件技術在MIS開發中的應用

J2EE中間件集成企業應用

WINDOWS程式設計--動態鏈接庫(2)

Hooks(鉤子)監聽消息的方法

aspjpeg組件高級使用方法介紹


google_ad_client = "pub-2416224910262877"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel = ""; google_color_border = "E1771E"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000";

ASP服務器端組件編程實例1


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 高清一级做a爱过程免费视频 | 国产精品视频免费播放 | 国内精品久久久久不卡 | 二性视频| 免费黄色一级网站 | 日本免费特黄aa毛片 | 涩涩色视频在线播放 | 国产视频自拍一区 | 成年女人视频在线观看免费 | 加勒比一本大道在线 | 久久精品国产亚洲麻豆小说 | 欧美激情免费观看 | h片在线播放免费高清 | 亚洲视频 中文字幕 | 91久娇草| 久久99精品久久久久久久不卡 | 成人 亚洲 成人影院 | 久草热在线 | sese视频在线 | 99久久99热久久 | 国产精品久久网 | 狠狠色丁香婷婷综合小时婷婷 | 91最新在线视频 | 成年人网站免费 | 日韩国产成人精品视频 | 成人香蕉 | 国产精品久久做爰 | 97视频在线观看免费视频 | 国产在线激情 | 亚洲a视频在线观看 | 5g国产精品影院天天5g天天爽 | 你懂得在线网站 | 久久久久夜色精品波多野结衣 | 啪啪网站色大全免费 | 欧美激情视频一区 | 2019精品国产品免费观看 | 日日夜夜精品 | 91这里只有精品 | 日本亚洲高清 | 日日夜人人澡人人澡人人看免 | 奇米影视第七色 |