精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Groovy編寫Google App Engine應用

開發 開發工具
隨著Google App Engine添加了JVM功能,基于JVM的各種語言編寫的應用現在都可以在Google的云端運行。本文簡單介紹了如何使用Groovy編寫Google App Engine。

Google 剛剛宣稱(編者:此次更新時間為09年4月9日)他們的Google App Engine 云計算平臺現在已經支持了除了Python以外的其他的語言:即Java和Groovy!
現在,你可以通過Groovy高效的編寫你的Google App Engine 應用了。

幾星期以前,SpringSource Groovy團隊和Google App Engine Java 團隊緊密攜手,仔細的處理了大量的細節問題,以確保這門獲獎的頗為流行的基于JVM的動態語言--Groovy可以很好的運行在這個精彩的平臺上。他們針對那些限制嚴格以及有很強的安全管理政策的領域為Groovy編寫了一些補丁,之后在預定日期發布了 Groovy 1.6.1 更新。在新版本中,你可以通過直接在你的 WEB-INF/lib 目錄下部署 "groovy-all" JAR 文件開始通過 Groovy 編寫你的應用,并運行在 Google 的內核上。

在文本的其余部分,我將帶你通過一些簡單的步驟來創建你的***個基于Groovy的App Engine Web應用。由于他們在App Engine 的文檔里列的很清楚,這里我會跳過基本的安裝步驟,并且我將著重于構建Groovy 應用本身的方方面面。就像你即將看到的一樣,這會相當的輕松。

開始入門

首先,顯然,你得在 Google App Engine 上注冊一個Google帳號,以便你可以在該平臺創建應用,并能將其上載到云端。你也會需要下載并安裝Google App Engine Java SDK。上述所有的步驟,你應該參看在線文檔,你可以在里面找到所有你需要的細節。

一旦 SDK 安裝完畢,為了本次課程所需,你還應該下載并安裝 Groovy1.6。 本文前面的步驟需要我們用Groovy編譯一個servlet,你會用到 Groovy,但是在余下的部分,由于我們將使用Groovy在運行時自編譯的 Groovlets,所以你就不在需要它了。

有了 Java, SDK, Groovy 安裝,我們就可以繼續了,通過 Groovy-ready 項目模板建立一個新的項目。下載摘要,解壓到一個你喜歡的目錄下,下面讓我們看看里面都有什么!這感覺就像拆開圣誕禮物的包裝,對嗎?

我把這個模板項目解壓到了一個叫 gaedemo 的目錄下。在這個目錄的根,你會看到一個包含著所有我們的 Groovy 和 Java 源代碼需要去編譯的 src 目錄 (servlets, domain classes, utility classes, 等等)。 deploy 目錄基本上同我們將要輸出的webapp一致:你會看到一個包含所有編譯過的類的 classes 目錄, 存放各種 JAR 文件 lib 目錄(Groovy JAR 和 Google App Engine 自己的 API JAR 一樣), 以及存放 Groovlet 的 groovy 目錄。在本文的第二部分,我們將開發這些 Groovlets。 你也當然會注意到 appengine-web.xml 文件,它是一個 App Engine 特殊描述器。你可以能找到標準的 web.xml, 在它里面,你可以定義你自己的 servlets, 你的映射關系以及其它的東西。

編譯類

在對這個項目結構有個大概的印象之后,讓我們關鍵的文件都包括哪些.就讓我們從 build.groovy 文件開始把。我利用 Groovy 的 AntBuilder (構建在Ant之上的一個輕量級的領域特定語言) 替代了直接創建一個 Ant 編譯文件:

def ant = new AntBuilder().sequential {
webinf = "deploy/WEB-INF"
taskdef name: "groovyc", classname: "org.codehaus.groovy.ant.Groovyc"
groovyc srcdir: "src", destdir: "${webinf}/classes", {
classpath {
fileset dir: "${webinf}/lib", {
include name: "*.jar"
}
pathelement path: "${webinf}/classes"
}
javac source: "1.5", target: "1.5", debug: "on"
}
}

我們實例化一個 AntBuilder, 為目標目錄 WEB-INF 創建一個屬性,我們定義了 groovyc 的Ant任務,利用任務為 Groovy 代碼和指明了編譯器,這個編譯器(譯者:實際上就是 org.codehaus.groovy.ant.Groovyc ,這是個Java類,顯然它的作用就是把 Groovy 的代碼翻譯成Java代碼,剩下的事情就由 javac 來搞定了) 通過將編譯Java類的任務委托給 javac 編譯起而做到聯合編譯 Groovy 及其 Java 的依賴類 -- 當然,是否真能做到讓這兩種語言無縫集成,還有代證明。在定義完這個任務之后,將classpath設成 WEB-INF/lib 下面的JAR文件和編譯過的 classes,我們就可以啟動來編譯源代碼了。

為了執行這個 build 文件, 利用你已經安裝的 Groovy, 你只需要下面的命令去編譯你的項目

groovy build

設置項目描述符

在 appengine-web.xml 文件中包含著一些Google App Engine 部署你項目時需要的原數據。尤其的,這里是你定義應用的名稱以及版本號的地方,你需要將你自己應用的名稱更新進去。到現在,我們的描述符看起來就像下面的樣子:

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>myowngroovy</application>
<version>1</version>
</appengine-web-app>

#p#

創建你***個 Servlet

在跳入 Groovlets 之前,我們將從一個不錯的老 Servlet 開始!由于Google App Engine 支持 Servlet 2.5 規范,我們可以些一個簡單的 "Hello World!" Servlet。 我們在 src 目錄創建一個名為 HelloServlet.groovy 的文件,它包含下面的代碼:

import javax.servlet.http.*

class HelloServlet extends HttpServlet {
void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.contentType = "text/plain"
resp.writer.println "Hello Google App Engine Groovy!"
}
}

雖然你會注意到 Groovy 提供的更簡單的語法: 少了分號, public 關鍵字, 屬性的 getter/setter 以及分號的省略都是可選的,但是這看起來更想一個普通 Java servlet。

下一步: 我們需要在 web.xml 引用這個 servlet,就像這樣:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

一旦 servlet 配置完畢,別忘了用我們的小 build 文件來編譯 servlet

groovy build

把你的應用上載到云端

如果你的 Google App Engine SDK 配置正確,你應該可以在你的項目根目錄處運行下面的命令:

appcfg.sh update deploy/

***次運行時,這個命令會提示驗證你的權限,以后再調用的時候它將會打印類似下面的輸出:

Reading application configuration data...
Beginning server interaction for myowngroovy...
0% Creating staging directory
5% Scanning for jsp files.
20% Scanning files on local disk.
25% Initiating update.
28% Cloning 5 application files.
40% Uploading 1 files.
52% Uploaded 1 files.
90% Deploying new version.
95% Will check again in 1 seconds
98% Closing update: new version is ready to start serving.
99% Uploading index definitions.
Update complete.
Success.
Cleaning up temporary files...

如果你看到了 “Success” 這個字, 那是當然的了,因為所有的事情進行十分順利,而你的應用也已經準備就緒了。 通過類似下面的 URL 來訪問這個 servlet (根據你應用的名字而所有不同): http://myowngroovy.appspot.com/hello,你將會看到這條消息:“Hello Google App Engine Groovy!”

求救于 Groovlets

利用 Groovy 語言編寫老 Java servlet 的確很讓人興奮,對嗎? 這種感覺就像你***次作出了一個servlet 一樣,對嗎?不是那么的一樣,它好像幾乎已經不那么時髦了。幸運的是, Groovy 以及 Groovlets 來了。

在極小的容器中, Groovlets 只不過就是存放在 WEB-INF/groovy 目錄下的 Groovy 腳本,Groovy servlet 調度器被用來(譯者:在運行時) 編譯和渲染這些腳本。

首先,讓我們更新 web.xml,增加一個 GroovyServlet, 以及一個 URL 映射,使得所有能被模式 *.groovy 匹配上的 URL 都會轉向它。

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<servlet>
<servlet-name>GroovyServlet</servlet-name>
<servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GroovyServlet</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

一點搞定這個,我們馬上就在 WEB-INF/groovy 下創建我們***個 Groovlet 腳本, hello.groovy:

html.html {
head {
title "Hello"
}
body {
p "Hello Groovy World!"
}
}

這個 Groovy 腳本采用了一個名為 html 的變量名范圍(譯者:原文是 variable bound, 我估計是類似于 包路徑或者名稱空間的概念)來同 MarkupBuilder 的實例進行綁定。它(譯者:指 MarkupBuilder)是一個為了創建各種 XML 或 HTML 標記又小又有用的領域特定語言。 MarkupBuilder 用更清晰更 Groovy 的語法替代了依靠一行一行通過 println 語句輸出HTML字符串的形式。 當然,你可以通過混合一些循環和條件讓這個標記語言更加動態。

在重新上傳這個應用之后,你現在可以通過 http://myowngroovy.appspot.com/hello.groovy 來訪問這個 Groovlet 了。這次你就不需要編譯任何東西了,因為編譯這些 Groovlets 腳本是 GroovyServlet 的事情。

簡單嗎?

接下來...

我們僅僅是觸及了一些很膚淺的情況,但是這足以讓你對 Groovy 入門了。在你在 Google App Engine APIs 探索的同時,這里還有一些你可以通過你的 Groovlets 和 servlets 使用的破有意思的服務:

◆一個數據存儲的接口 (datastore API),你可以通過底層的無 schema 的API 或者 JDO 存儲你的對象

◆一個用來可以進行各種轉換和應用濾鏡圖像接口

◆一個用來發送電子郵件的郵件接口

◆一個用來緩存重量數據結構或者計算結果的內存緩沖接口(memcache API)

◆一個用來獲取遠端 URL 內容的 URL 獲取接口

◆一個使用 Google 用戶帳戶來進行驗證的用戶接口

當然,所有的這些服務都可以被你的 Groovlet 腳本調用。 你也可以使用第三方庫并把他們放在你的 WEB-INF/lib 目錄里面。研究一下更多的可用接口,看看在它們上面構建一個瘦 Groovy 層是否會讓它們更容易被使用,通過更Groovy的方式,這會很有趣。

如今, Groovlets 和普通的 servlet 被徹底的支持了,但是例如, Grails 應用還是不能跑在當前版本的 Google App Engine 上。我們將繼續和 Google App Engine 團隊一道努力,以便讓你可以通過 Grail 讓更多的高級應用(譯者:和Groovy)跑的一樣好。

【編輯推薦】

  1. Google宣布App Engine增加Java支持
  2. Google App Engine:堅定的站在Java的中心
  3. 使用Java開發Google APP Engine初試
責任編輯:yangsai 來源: 譯言
相關推薦

2010-02-01 09:21:49

GroovyGoogle App Gaelyk

2012-08-01 14:12:45

IBMdW

2009-08-11 10:16:27

Google App GAE

2009-10-14 10:11:39

App Engine

2009-05-22 14:52:33

App Engine免費配額

2009-04-13 15:48:54

Google AppJavaSun

2009-04-08 16:47:11

GoogleApp EngineJava

2009-08-11 11:23:41

什么是GAEGoogle App

2009-04-09 08:54:07

App EnginegoogleJava

2011-09-06 14:53:01

Google App

2009-05-13 09:20:12

Google App 應用收費

2009-02-16 09:11:42

Google App SDKGQL

2009-10-16 09:08:59

App Engine

2009-09-02 11:34:09

Google App

2011-09-15 10:29:13

架構

2013-07-30 12:29:19

Google App Google技術Engine

2009-09-08 09:45:23

App Engine性

2009-04-09 09:53:43

GoogleAppEngineJava

2010-12-01 10:49:52

Google App

2009-08-07 13:53:14

App Engine
點贊
收藏

51CTO技術棧公眾號

在线最新版中文在线| www黄色网址| 国产综合久久久| 欧美理论片在线| 国产精品无码电影在线观看 | 日韩av最新在线观看| 乱子伦视频在线看| 成人片在线看| 久久亚洲精品小早川怜子| 成人动漫网站在线观看| 国产精品 欧美 日韩| 日韩精品久久| 日韩av在线不卡| 免费精品99久久国产综合精品应用| 免费污视频在线观看| 欧美国产国产综合| 国产精品一区二区欧美| 亚洲一二区视频| 亚洲日本免费| 欧美理论电影在线播放| 中文字幕在线观看免费高清| 久久久久影视| 欧美一区二区三区四区高清| 日av中文字幕| 日本不卡1234视频| 一区二区三区中文字幕精品精品| 天堂资源在线亚洲资源| 无码精品在线观看| 高清shemale亚洲人妖| 国产美女精品视频| 精品国产一区二区三区四| 亚洲视频一二| 欧美成人在线免费视频| 91狠狠综合久久久久久| 亚洲伊人春色| 亚洲精品suv精品一区二区| 天天色天天干天天色| 欧美成人xxxx| 欧美视频在线观看一区二区| 免费在线观看的av网站| wwwww亚洲| 亚洲六月丁香色婷婷综合久久| 手机在线观看国产精品| 欧美日韩在线精品一区二区三区激情综 | 久久综合狠狠综合久久综合88 | 天堂在线观看免费视频| 国产成人自拍网| 91在线|亚洲| 国产女同91疯狂高潮互磨| 精品一区免费av| 国产欧美日韩中文字幕在线| 日韩综合在线观看| 视频在线观看一区| 日本久久久a级免费| youjizz在线视频| 老鸭窝毛片一区二区三区 | 日本熟女毛茸茸| 蘑菇福利视频一区播放| 欧美一级淫片丝袜脚交| 伊人中文字幕在线观看| 久久资源在线| 国产精品久久久久久久久久久久久久 | 亚洲女人久久久| 66视频精品| 欧美另类老女人| 国产在线视频第一页| 亚洲人成久久| 日韩av大片免费看| 亚洲中文字幕无码爆乳av| 毛片av一区二区| 亚洲xxxxx电影| 亚洲欧美另类综合| 91婷婷韩国欧美一区二区| 欧美一区二区三区在线播放| 91啦中文在线| 亚洲欧美视频一区| 性欧美大战久久久久久久| 在线天堂新版最新版在线8| 在线观看视频一区二区 | 亚洲精品大全| 日韩一区二区在线看| 在线观看亚洲免费视频| 精品一区在线| 久久久精品欧美| 国产精品成人久久| 日韩在线一区二区三区| 91成人免费在线观看| 午夜一区在线观看| 中文字幕成人av| 久久久99精品视频| 男人最爱成人网| 7777精品久久久大香线蕉| 一本色道久久hezyo无码| 性欧美lx╳lx╳| 久久精品在线视频| 啦啦啦免费高清视频在线观看| 青椒成人免费视频| 国产66精品久久久久999小说| 日本中文字幕一区二区有码在线| 国产精品丝袜一区| 中文字幕无码精品亚洲资源网久久| 亚洲小少妇裸体bbw| 在线播放日韩导航| 免费a在线观看播放| 91久久久精品国产| 57pao国产成人免费| 91高潮大合集爽到抽搐| 99久久国产综合精品色伊| 亚洲一区不卡在线| 欧美激情网站| 欧美成人乱码一区二区三区| 我不卡一区二区| 精品成人久久| 91精品国产综合久久香蕉922| 手机看片国产1024| 亚洲免费视频中文字幕| 成人羞羞国产免费网站| 国产欧美自拍一区| www.久久色.com| 久久久久久无码午夜精品直播| 国产不卡免费视频| 中文字幕成人一区| 欧美日韩五区| 亚洲欧美另类人妖| 亚洲欧美在线观看视频| 国产久卡久卡久卡久卡视频精品| 日韩高清av电影| www在线观看黄色| 欧美va亚洲va香蕉在线| 日本在线一级片| 久久精品国产精品亚洲精品| 热re99久久精品国产99热| 蜜桃视频www网站在线观看| 精品电影一区二区三区 | 一区二区不卡| 成人网在线免费观看| av播放在线观看| 日本久久一区二区三区| 魔女鞋交玉足榨精调教| 国产亚洲成人一区| 精品不卡在线| 色偷偷色偷偷色偷偷在线视频| 亚洲成人xxx| 国产午夜激情视频| www.欧美精品一二区| 香港三级日本三级a视频| 日韩在线网址| 欧美精品一二区| 亚洲成人一级片| 一区二区国产盗摄色噜噜| 精品人妻一区二区三区免费| 欧美精品综合| 国产另类第一区| 97在线超碰| 国产丝袜一区二区三区免费视频| 91国产丝袜播放在线| 97久久人人超碰| 日本精品一区二区三区四区| 精品国产欧美日韩| 国产精品美女主播| 欧美激情免费| 日韩欧美高清一区| 日韩在线视频免费播放| 久久久久久久电影| 天堂av2020| 欧美精品日韩| 精品免费国产| 亚洲一区二区三区四区| 在线观看欧美视频| 国产毛片一区二区三区va在线| 伊人一区二区三区| 手机在线成人av| 日韩精品电影在线观看| 国产精品美女在线播放| 91精品久久久久久综合五月天| 97视频免费看| yiren22亚洲综合伊人22| 欧美精品在线观看播放| 久久久国产成人| 91一区二区在线观看| 熟女少妇精品一区二区| 亚洲老妇激情| 麻豆亚洲一区| 成人综合日日夜夜| 97avcom| 18视频免费网址在线观看| 欧美一区午夜视频在线观看 | 亚洲资源一区| 日韩精品中文字幕在线播放| 亚洲最大成人av| 午夜视频一区在线观看| 久久日免费视频| 成人午夜电影小说| 亚洲欧美视频二区| 在线日韩av| 一本色道久久综合亚洲精品婷婷| 国产精品xxx在线观看| 国产精品久久久久久婷婷天堂| 欧美午夜大胆人体| 宅男66日本亚洲欧美视频| 亚洲AV无码一区二区三区性| 91久久香蕉国产日韩欧美9色| 成年人一级黄色片| 国产天堂亚洲国产碰碰| 第四色在线视频| 狠狠色丁香婷婷综合久久片| 国产高清精品在线观看| 欧美日韩91| 亚洲aⅴ天堂av在线电影软件| 国产精品毛片av| 成人免费淫片视频软件| 日韩在线短视频| 18久久久久久| 污视频在线看网站| 日韩中文字在线| 岛国在线大片| 日韩的一区二区| 精品国产乱码一区二区三| 欧美影片第一页| 国产欧美一区二区三区在线看蜜臂| 亚洲精品视频免费观看| 你懂得在线观看| 欧美激情资源网| 国产肥白大熟妇bbbb视频| 成人av在线网| 日本wwwwwww| 国产伦精品一区二区三区免费迷| 在线观看免费成人av| 亚洲欧美不卡| 欧美成人高潮一二区在线看| 欧美精品国产| 91网站在线观看免费| 五月激情综合| 中文字幕一区二区三区四区五区人| 久久不见久久见国语| 欧美国产二区| 国产精品一区二区av日韩在线 | 先锋资源在线视频| 国内外成人在线| 中文字幕第一页在线视频| 麻豆精品在线播放| 天堂网在线免费观看| 久久精品国产99| 91视频这里只有精品| 韩国成人在线视频| 国产999免费视频| 国产一区二区三区免费在线观看| 国产欧美精品一二三| 黄一区二区三区| 在线观看av免费观看| 国产在线精品一区二区夜色 | 国产极品尤物在线| 日韩午夜av在线| 热99这里只有精品| 国产欧美激情| 欧美日韩亚洲一二三| 日本中文一区二区三区| 色播五月激情五月| 国产揄拍国内精品对白| 少妇丰满尤物大尺度写真| 国产不卡视频一区| 一级特黄a大片免费| 久久综合成人精品亚洲另类欧美 | 久久精品无码一区二区三区毛片| 国产精品一区免费在线观看| 无码人妻一区二区三区精品视频 | 美乳视频一区二区| 欧美日韩有码| 欧美aaa在线观看| 韩国亚洲精品| 女性隐私黄www网站视频| 免费一级欧美片在线观看| 久久出品必属精品| 成人av影院在线| 天天躁夜夜躁狠狠是什么心态| 国产精品入口麻豆九色| 精品爆乳一区二区三区无码av| 欧美日韩激情美女| 亚洲图片在线播放| 日韩美女一区二区三区四区| 色资源在线观看| 日韩一区二区福利| missav|免费高清av在线看| 国产国语刺激对白av不卡| 精品入口麻豆88视频| 久久国产精品久久| 欧美国产一级| 妺妺窝人体色777777| 日本女人一区二区三区| 不卡的一区二区| 国产偷国产偷亚洲高清人白洁| 欧美被狂躁喷白浆精品| 日本韩国欧美国产| www香蕉视频| 中文字幕欧美精品在线| 91av久久| 亚洲在线免费视频| 国产欧美日韩| 国产www免费| 亚洲免费av一区| 亚洲最新色图| 国产亚洲精品网站| 激情综合网最新| 少妇激情一区二区三区视频| 日本一区二区视频在线观看| 久久久久久久国产视频| 欧美午夜精品理论片a级按摩| 亚洲高清视频网站| 日韩中文字幕网| 超碰国产一区| 国产精品一区在线播放| 欧美好骚综合网| 日本xxxxxxx免费视频| 成人激情视频网站| 中文字幕av播放| 欧美日韩综合在线免费观看| 欧美视频综合| 国模私拍一区二区三区| 欧美精品影院| 中文字幕中文字幕一区三区| 日韩激情中文字幕| 西西大胆午夜视频| 亚洲一区二区三区不卡国产欧美| 国产精品久久婷婷| 精品国产视频在线| 国内自拍亚洲| 日本精品视频一区| 国产精品无码2021在线观看| 欧美多人爱爱视频网站| 天堂久久一区| 亚洲欧洲一区二区| 日韩和欧美一区二区三区| 欧美一区二区三区成人精品| 午夜私人影院久久久久| 六月丁香综合网| 欧美激情精品久久久久久免费印度| 国内精品视频| 91xxx视频| 国产一区二区三区免费在线观看| www.毛片com| 91精品国产欧美一区二区成人| 欧美边添边摸边做边爱免费| 国产精自产拍久久久久久| 成人情趣视频网站| www.超碰97.com| 亚洲色图制服诱惑| 国产精品免费无遮挡| 久久亚洲精品一区| 日韩成人视屏| 免费高清一区二区三区| av在线不卡网| 天堂中文在线网| 一本色道久久88精品综合| 福利精品在线| 中文字幕日韩精品久久| 国产精品综合久久| 一区二区三区免费高清视频| 亚洲成人av在线| 欧美gay视频| 一区二区三区四区| 国产精品中文字幕欧美| 久久久久久福利| 亚洲国语精品自产拍在线观看| 亚洲黄色中文字幕| 亚洲国产精品一区二区第四页av| 激情小说亚洲一区| 免费在线观看av网址| 日韩成人xxxx| 成人午夜亚洲| 糖心vlog在线免费观看| 成人av电影在线观看| 精品黑人一区二区三区| 日韩午夜在线视频| 99re热精品视频| 国产一线二线三线在线观看| 成人欧美一区二区三区1314| 高清一区二区三区四区| 欧洲s码亚洲m码精品一区| 91综合久久| 国产免费a级片| 在线免费av一区| 中文字幕资源网在线观看| 精品不卡在线| 久久国产精品72免费观看| 国产极品在线播放| 亚洲欧洲在线观看| 日韩欧美中文在线观看| 激情五月开心婷婷| 亚洲欧美另类综合偷拍| 青青操视频在线| 亚洲综合中文字幕在线观看| 久久福利毛片| 久久综合加勒比| 丝袜美腿精品国产二区| 国内自拍欧美| 中文字幕第一页在线视频| 欧美视频裸体精品| 日韩av毛片| 亚洲欧美丝袜| 久久在线观看免费|