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

Play Framework介紹:HTTP路由

開發(fā) 后端
HTTP路由(譯者注:Play的路徑映射機制)組件負責將HTTP請求交給對應(yīng)的action(一個控制器Controller的公共靜態(tài)方法)處理。對于MVC框架來說,一個HTTP請求可以看成一個事件。這個事件包含2方面的信息。

HTTP路由(譯者注:Play的路徑映射機制)組件負責將HTTP請求交給對應(yīng)的action(一個控制器Controller的公共靜態(tài)方法)處理。

對于MVC框架來說,一個HTTP請求可以看成一個事件。這個事件包含2方面的信息:

  • 請求的路徑(例如 /clients/1542, /photos/list),包括查詢字符串(Query String)。
  • HTTP的請求方法 (GET, POST, PUT, DELETE)。

關(guān)于REST

Representational state transfer(簡稱REST)是一種分布式超媒體軟件架構(gòu)風格,類似互聯(lián)網(wǎng)。

REST規(guī)定了一些關(guān)鍵的設(shè)計原則:

  • 應(yīng)用的功能分散在各種資源中
  • 每個資源對應(yīng)一個唯一的可訪問的資源標識符(URI)
  • 所有資源在客戶端和資源之間使用一個統(tǒng)一的接口來轉(zhuǎn)移狀態(tài)。

如果你使用過HTTP協(xié)議,HTTP協(xié)議的方法(譯者注:GET、POST、PUT和DELETE等)定義了這些接口。訪問資源狀態(tài)使用的協(xié)議有:

  • 客戶-服務(wù)器
  • 無狀態(tài)性
  • 緩存
  • 分層

如果應(yīng)用遵循了上述的REST設(shè)計原則,那么我們稱該應(yīng)用是RESTful的。 使用Play框架很容易構(gòu)建RESTful的應(yīng)用:

  • Play路由通過解析URI和HTTP methods,將request請求映射到對Java方法的調(diào)用。基于正則表達式的URI模式讓你處理起來更加靈活。
  • 協(xié)議是無狀態(tài)的,這意味著你不能在服務(wù)端保存2次成功請求之間的任何狀態(tài)。
  • Play認為HTTP是關(guān)鍵的特性,因此Play讓你可以毫無保留地訪問HTTP的所有信息。

路由文件的語法

conf/routes 文件用于配置路由規(guī)則。這個文件包含了應(yīng)用的所有路徑映射。每一個路由配置項由HTTP方法,URI模式和對應(yīng)的Java調(diào)用組成。

我們看看,一個路由配置項是這樣子的:

  1. GET    /clients/{id}             Clients.show 

每一個路由配置項以一個HTTP方法開始,后面跟著URI模式,最后是Java調(diào)用的聲明。

你可以給路由文件增加注釋,以 # 開頭。

  1. # Display a client  
  2. GET    /clients/{id}             Clients.show   

HTTP方法

HTTP方法可以是任何HTTP所支持的有效的方法:

  •  GET
  • POST
  • PUT
  • DELETE
  • HEAD

此外它支持使用 WS 作為action方法,表示一個 WebSocket 請求。

如果使用 * 作為方法,則這個路由項將和任何HTTP請求方法相匹配。

  1. *   /clients/{id}             Clients.show 

這個路由項將匹配以下兩者(譯者注:當然也匹配所有其他的HTTP方法):

  1. GET /clients/1541 
  2. PUT /clients/1212 

URI模式

URI模式定義了請求的路徑。請求的路徑可以定義動態(tài)URI,動態(tài)URI的部分必須包含在 {…} 中。

  1. /clients/all 

將完全匹配:

  1. /clients/all 

但是…

  1. /clients/{id} 

將同時匹配以下兩者:

  1. /clients/12121 
  2. /clients/toto 

一個URI模式可以包含一個以上的動態(tài)部分:

  1. /clients/{id}/accounts/{accountId} 

動態(tài)部分的默認匹配策略是由正則表達式 /[^/]+/ 來定義的,你也可以為動態(tài)部分定義你自己的匹配正則表達式。

下面這個正則表達式只能接受id為數(shù)字的URI請求:

  1. /clients/{<[0-9]+>id} 

下面這個則只接受id是一個包含4位到10位小寫字母的URI請求:

  1. /clients/{<[a-z]{4,10}>id} 

總之任何合法的正則表達式都可以在這里使用。

注意

動態(tài)部分在此處是有命名的(譯者注:如上述例子中動態(tài)部分命名為id)。稍候Controller控制器可以通過HTTP參數(shù)對象(Map)獲取此處的動態(tài)部分的值(譯者注:即獲取id的實際值)。

Play認為斜杠 / 是很重要的,不可忽略。例如,看看下面這個路由項:

  1. GET     /clients         Clients.index 

它將會匹配 /clients 但是不會匹配 /clients/ 。你可以通過在斜杠 / 后加上一個問號 ? ,讓這個路由項匹配到URI尾部含有斜杠 / 或者沒有斜杠 / 的兩種情況,例如:

  1. GET     /clients/?       Clients.index 

上述URI模式的尾部斜杠后面加上一個問號表示尾部斜杠是 可選的,除此以外,URI模式 不能 有任何其他的可選部分。

聲明Java調(diào)用

路由配置項的最后一部分是Java調(diào)用的聲明,這部分是由一個action方法的全稱來定義的,并且這個action方法必須是一個控制器Controller類中的 public static void 的方法,Controller類必須定義在 controllers 包下,而且必須作為 play.mvc.Controller 的子類。

你可以在 controllers 包下增加自定義的包名,那樣的話你在此處的聲明就需要在Controller類名前加上自定義的包名。 controllers 包本身是固定的,所以在路由項的action聲明中不需要寫出來。

  1. GET    /admin             admin.Dashboard.index 

指派靜態(tài)的參數(shù)

在某些情況下,你想重用一個已聲明的action,但是想定義一個特殊的路由項,這個路由項具有一些特殊的參數(shù)值。

讓我們在下面例子中看一下怎么做:

  1. public static void page(String id) {  
  2.     Page page = Page.findById(id);  
  3.     render(page);  

對應(yīng)的路由項是:

  1. GET    /pages/{id}        Application.page 

現(xiàn)在,我想為id為‘home’的頁面(即/pages/home)指定一個URL別名,我可以使用靜態(tài)參數(shù)定義另外一個路由項:

  1. GET    /home              Application.page(id:'home')  
  2. GET    /pages/{id}        Application.page 

當page id為‘home’時,上面的兩個路由項是等價的。但是,由于第一個路由項的優(yōu)先級比第二個路由項高,所以當page ID為‘home’時,請求將匹配到第一個路由項。

變量和腳本

你可以在 routes 文件中用 ${ … } 的語法來使用變量,也可以用 %{ … } 的語法來使用腳本,就像在模板templates文件里使用一樣。例如:

  1. %{ context = play.configuration.getProperty('context''') }%  
  2.    
  3. # Home page  
  4. GET    ${context}         Secure.login  
  5. GET    ${context}/        Secure.login 

另一個例子可以看CRUD模塊的 routes 文件,它使用 crud.types 標簽循環(huán)遍歷所有model類型,為每一個model類型生成一個controller的路由項。


路由的優(yōu)先級

很多路由項可以匹配相同的URL請求,如果有沖突的話,將按照在route文件中聲明的順序,匹配最前面的路由項。

例如:

  1. GET    /clients/all       Clients.listAll  
  2. GET    /clients/{id}      Clients.show 

對于這樣的定義,下面的URI請求:

  1. /clients/all 

將被第一個路由項攔截,并調(diào)用 Clients.listAll(盡管第二個路由項也匹配該請求)。


處理靜態(tài)資源

使用 staticDir 作為特殊的action方法,可以將指定的文件目錄公開為靜態(tài)資源文件的容器。

例如:

  1. GET    /public/           staticDir:public 

當請求路徑與 /public/* 匹配時,Play會從 /pubic 文件夾目錄中取得靜態(tài)資源文件。

路由優(yōu)先權(quán)也適用于這種靜態(tài)資源的路由項。


反向路由:生成URL

在Java代碼中可以使用Router生成URL,所以你可以將所有URI匹配模式集中地配置在唯一的一個配置文件中,然后充滿信心地重構(gòu)你的應(yīng)用。

例如,下面的這個路由配置:

  1. GET    /clients/{id}      Clients.show 

在你的代碼中,可以根據(jù)Clients.show生成對應(yīng)的URL:

  1. map.put("id"1541);  
  2. String url = Router.reverse("Clients.show", map).url;  // GET /clients/1541 

由action方法反向生成URL的這個功能被集成在Play框架的很多組件中,你永遠不需要直接調(diào)用 Router.reverse 這個方法。

如果增加的參數(shù)不包含在URI匹配模式中,這些參數(shù)會被附加到請求參數(shù)(Query String)的后面。

  1. map.put("id"1541);  
  2. map.put("display""full");  
  3. String url = Router.reverse("Clients.show", map).url; // GET /clients/1541?display=full 

路由對象Router會按照優(yōu)先級的順序找到最符合條件的路由匹配規(guī)則去生成URL。


設(shè)置 Content Types

Play根據(jù) request.format 的值來決定HTTP響應(yīng)的媒體類型 media type 。通過匹配文件后綴名, request.format 的值可以決定要使用的模板文件 template。Play 還會從 mime-types.properties 文件的映射關(guān)系中,根據(jù)媒體類型 media type 對應(yīng)的 Content-type ,來決定HTTP響應(yīng)的內(nèi)容類型。

Play默認的響應(yīng)格式是 html ,因此控制器方法 index() 默認渲染的模板文件將是 index.html 文件。通過各種方式,你可以指定一個不同的格式,這樣就可以自定義替代的模板。

在調(diào)用 render 方法之前,你可以使用編程的方式設(shè)置響應(yīng)的格式。例如,為了提供一個媒體類型 media type 為 text/css 的層疊樣式表,你可以這樣做:

  1. request.format = "css";   

但是,更清晰的方式是在 routes 文件中使用URL來指定格式。你可以在路由項中,給控制器的方法添加格式的聲明,以此來設(shè)置響應(yīng)類型。例如,下面的路由項將處理 /index.xml 的請求,設(shè)置 xml 的響應(yīng)格式并且渲染 index.xml 模板文件。

  1. GET    /index.xml         Application.index(format:'xml'

類似地:

  1. GET    /stylesheets/dynamic_css   css.SiteCSS(format:'css'

對于像下面這樣的路由項,Play也可以直接從請求URL中解析出格式。

  1. GET    /index.{format}    Application.index  

對于這個路由項, /index.xml 的請求將使用 xml 的格式并且渲染 XML 的模板文件, /index.txt 的請求將使用 txt 的格式并且渲染簡單文本(plain text)的模板文件。

Play也可以根據(jù)HTTP內(nèi)容協(xié)商(content negotiation)自動選擇響應(yīng)的格式。


HTTP內(nèi)容協(xié)商

Play 與其他 RESTful 架構(gòu)的一個共同點是,直接使用 HTTP 的功能,而不是嘗試隱藏 HTTP 或者在 HTTP 之上添加抽象層。內(nèi)容協(xié)商(Content negotiation )是這樣的一個 HTTP 特性,它允許 HTTP 服務(wù)器根據(jù)不同的 HTTP 客戶端請求的媒體類型(media types),對同一個 URL ,響應(yīng)不同的媒體類型( media types )。HTTP 客戶端在 Accept 請求頭部中設(shè)置媒體類型(media types),來指定接受的內(nèi)容類型(content types)。例如這樣的請求表示希望得到一個 XML 的響應(yīng):

  1. Accept: application/xml 

客戶端可以指定一個以上的媒體類型(media type),也可以使用星號通配符( */* )表示可以接受任何的媒體類型(media type):

  1. Accept: application/xml, image/png, */* 

傳統(tǒng)的 web 瀏覽器大多數(shù)在 Accept 頭部中包含通配符 */* :它們將接受任何的媒體類型(media type),而 Play 會響應(yīng)默認的 HTML 內(nèi)容類型。內(nèi)容協(xié)商(content negotiation)更常用于自定義的客戶端,例如一個期望得到 JSON 響應(yīng)的 Ajax 請求,或者一個期望得到 PDF 或 EPUB 格式的文件的電子閱讀器。

在HTTP頭部中設(shè)置Content Type

如果請求的 Accept 頭部中含有 text/html, application/xhtml 或 通配符 */* ,Play 將使用默認的格式 html 。但如果沒有通配符 */* ,Play 將不會使用默認的格式。

Play內(nèi)置了幾種支持的格式: html, txt, json and xml。例如,定義一個控制器方法,渲染一些數(shù)據(jù):

  1. public static void index() {   
  2.    final String name = "Peter Hilton";   
  3.    final String organisation = "Lunatech Research";   
  4.    final String url = "http://www.lunatech-research.com/";   
  5.    render(name, organisation, url);   
  6. }  

如果瀏覽器發(fā)送的一個請求 URL 匹配了這個方法(例如使用 http://localhost:9000/訪問新創(chuàng)建的Play應(yīng)用),那么 Play 將渲染 index.html 模板文件,因為瀏覽器請求的 Accept 頭部值含有 text/html。

對于含有 Accept: text/xml 頭部的請求,Play會把響應(yīng)格式設(shè)置為 xml ,且渲染 index.xml 模板文件,例如:

  1. <?xml version="1.0"?>   
  2. <contact>   
  3. <name>${name}</name>   
  4. <organisation>${organisation}</organisation>   
  5. <url>${url}</url>   
  6. </contact>  

以控制器的 index() 方法為例,Play 內(nèi)置的 Accept 頭部類型映射的工作原理如下:Play將 accept 請求頭部包含的媒體類型(media type)映射到一種格式(format),從而決定渲染的模板文件。

Accept 頭部 格式(Format) 模板文件名 映射關(guān)系
null null index.html 格式為null映射到默認的模板文件
image/png null index.html 媒體類型的文件不通過格式來映射(譯者注:通過靜態(tài)資源目錄來訪問)
*/*, image/png html index.html 格式為html時映射到默認的媒體類型
text/html html index.html 內(nèi)置的格式
application/xhtml html index.html 內(nèi)置的格式
text/xml xml index.xml 內(nèi)置的格式
application/xml xml index.xml 內(nèi)置的格式
text/plain txt index.txt 內(nèi)置的格式
text/javascript json index.json 內(nèi)置的格式
application/json, */* json index.json 內(nèi)置的格式, 忽略默認的媒體類型

自定義格式

通過檢查請求的頭部,并且相應(yīng)地設(shè)置格式( format ),你可以自定義格式的類型。你只能設(shè)置與 HTTP 請求接受的媒體類型一致的格式。例如,在控制器中所有的請求處理之前,你可以設(shè)置自定義的格式,然后響應(yīng)一個 text/x-vcard 媒體類型的 vCard :

  1. @Before   
  2. static void setFormat() {   
  3.     if (request.headers.get("accept").value().equals("text/x-vcard")) {   
  4.         request.format = "vcf";   
  5.     }   
  6. }  

現(xiàn)在,對于一個帶有 Accept: text/x-vcard 頭部的請求,Play 將渲染一個 index.vcf 模板文件,例如:

  1. BEGIN:VCARD   
  2. VERSION:3.0   
  3. N:${name}   
  4. FN:${name}   
  5. ORG:${organisation}   
  6. URL:${url}   
  7. END:VCARD   

原文鏈接:http://play-framework.herokuapp.com/zh/routes

【編輯推薦】

  1. Play Framework框架安裝指南
  2. Play Framework框架概述
  3. Play Framework hotswap及源碼分析
  4. Play Framework總結(jié)性介紹
  5. Play Framework 2.0 RC1發(fā)布 Java Web框架
責任編輯:林師授 來源: Play Framework中文小站
相關(guān)推薦

2012-02-20 14:26:48

JavaPlay Framew

2012-02-20 14:20:44

JavaPlay Framew

2012-03-14 12:29:55

JavaPlay Framwo

2012-02-22 16:06:42

2012-02-24 10:57:43

2012-02-20 14:41:30

JavaPlay Framew

2012-02-22 17:23:51

JavaPlay Framew

2012-02-23 13:13:00

JavaPlay Framew

2012-02-23 13:48:16

JavaPlay Framew

2012-03-14 09:29:00

Play framewJava

2012-02-23 12:53:40

JavaPlay Framew

2012-02-23 11:06:18

JavaPlay FramewPlay!

2012-02-24 11:31:09

JavaPlay Framew

2012-02-29 10:54:21

JavaPlay Framew

2009-09-18 09:25:06

LINQ Framew

2011-09-09 17:01:42

框架

2009-12-15 11:28:34

.NET Framew

2009-07-20 16:12:21

ASP.NET Fra

2011-06-13 14:15:02

2012-02-22 15:51:22

JavaPlay Framew
點贊
收藏

51CTO技術(shù)棧公眾號

国产成人精品一区二区三区四区| 久久五月天小说| 精品久久中文字幕| 久久手机视频| 中文字幕第99页| 欧美 日韩 国产 一区| 精品日韩欧美在线| 91蝌蚪视频在线观看| www在线视频| xf在线a精品一区二区视频网站| 国产成人精品免高潮在线观看| 国产又粗又长免费视频| 永久免费精品视频| 在线观看av一区| 国产性生活免费视频| 青青草免费在线| 国产精品18久久久久久久久久久久| 午夜精品一区二区三区在线视频| 夫妇交换中文字幕| 91九色鹿精品国产综合久久香蕉| 在线免费观看日本欧美| 亚洲 欧美 综合 另类 中字| 成人全视频高清免费观看| 风间由美性色一区二区三区 | 日本午夜在线观看| 免费精品国产的网站免费观看| 777奇米四色成人影色区| 久久久免费视频网站| 欧洲黄色一区| 中文字幕的久久| 国产精品视频福利| 中文字幕av免费观看| 伊人久久成人| 久久久av网站| 中文字幕第二区| 免费视频一区三区| 亚洲福利精品在线| 亚洲欧美日韩中文字幕在线观看| 成人涩涩视频| 欧美视频13p| 日韩欧美不卡在线| 色呦呦在线播放| 亚洲免费在线播放| 日本丰满少妇黄大片在线观看| avtt亚洲| 亚洲国产成人午夜在线一区| 欧美国产一区二区在线| 性xxxx视频播放免费| 成人国产精品视频| 国产精品久久久久久久久久久久午夜片| 国产老女人乱淫免费| 蜜桃久久久久久久| 日本在线精品视频| 欧美精品二区三区| 9久re热视频在线精品| 欧美极品在线视频| 国产 日韩 欧美 成人| 中文一区一区三区免费在线观看| 色青青草原桃花久久综合| 伊人影院综合网| 色琪琪久久se色| 日韩中文字幕视频在线| а天堂中文在线资源| 色综合狠狠操| 久久国产精品视频| 日本在线一级片| 国精品一区二区三区| 久久久视频在线| 日韩人妻无码一区二区三区99| 在线精品一区| 欧美一区二区三区精品电影| 无码人妻精品一区二区三区蜜桃91| 久久国产99| 国产精品欧美日韩| 国产美女三级无套内谢| 国产精品456| 国产日韩欧美精品| 免费人成在线观看网站| 欧美国产一区在线| 可以在线看黄的网站| 女同一区二区免费aⅴ| 黄网站色欧美视频| 亚洲色精品三区二区一区| 欧美成人福利| 日韩精品中文字幕一区二区三区| 久久久久亚洲无码| 国产亚洲第一伦理第一区| 日韩在线视频线视频免费网站| 91杏吧porn蝌蚪| 国产欧美欧美| 国产一区视频在线| 欧美一区二区黄片| 国产欧美日韩精品在线| 婷婷视频在线播放| 久久久男人天堂| 欧美日韩国产片| 国产草草浮力影院| 第九色区aⅴ天堂久久香| 欧美成人亚洲成人| 国产精品男女视频| 日本中文在线一区| 国产91免费视频| 北条麻妃在线| 亚洲午夜电影在线| 日本xxxx黄色| 极品尤物一区| 久久深夜福利免费观看| 天堂在线免费观看视频| 久久成人免费电影| 就去色蜜桃综合| 成人影欧美片| 欧美主播一区二区三区| 香蕉视频污视频| 久久综合88| 日韩免费在线播放| 亚洲国产精品久久人人爱潘金莲| 久久精品视频一区| 91免费黄视频| 日韩成人在线观看视频| 国产亚洲a∨片在线观看| 欧美日韩免费一区二区| 美女视频黄 久久| 久久久久久九九九九| 亚洲七七久久综合桃花剧情介绍| 色老综合老女人久久久| 日本三级日本三级日本三级极| 99久久九九| 国产精品igao视频| 日韩av成人| 亚洲成a人在线观看| 欧美一级xxxx| 日韩在线观看电影完整版高清免费悬疑悬疑| 国内精品伊人久久| www.97av| 亚洲精品中文字幕乱码三区| 色天使在线观看| 日本大胆欧美| 国产精品永久在线| 在线免费观看黄色av| 91黄色免费网站| 一本色道久久综合亚洲精品图片| 伊人久久亚洲美女图片| 91精品久久久久久蜜桃| caoporm免费视频在线| 欧美久久久久久蜜桃| 在线观看免费小视频| 日av在线不卡| 日韩中文一区二区三区| 欧美free嫩15| 在线a欧美视频| 伊人网综合在线| 欧美国产日产图区| 日本xxxx黄色| 91超碰国产精品| 成人在线国产精品| 亚洲无线看天堂av| 日韩女优毛片在线| 久久精品欧美一区二区| 不卡欧美aaaaa| 日本日本19xxxⅹhd乱影响| 天堂一区二区三区四区| 日本亚洲精品在线观看| 国产在线小视频| 欧美日韩一区成人| 丝袜美腿小色网| 国产不卡在线一区| 浮妇高潮喷白浆视频| 亚洲视频分类| 国产美女精品视频| 成人短视频在线观看| 欧美精品一区二区三区在线| 亚洲免费黄色网址| 欧美极品另类videosde| 天堂在线一区二区三区| 国产主播精品| 乱色588欧美| 青青在线精品| 久久久免费av| 国产一区精品| 欧美一级在线观看| 日本少妇xxxx动漫| 国产视频一区在线播放| 日韩av一卡二卡三卡| 欧美日韩亚洲一区| 蜜桃臀一区二区三区| 国产69精品久久| 欧美区在线播放| 你懂的免费在线观看视频网站| 欧美日韩中文另类| 国产第一页在线播放| 久久久久99精品一区| 日韩av加勒比| 午夜亚洲性色视频| 无码人妻精品一区二区三区99v| 老牛精品亚洲成av人片| 国产精品久久视频| 国产福利在线免费观看| 在线观看久久av| 丰满人妻妇伦又伦精品国产| 91成人在线免费观看| 久久久久久欧美精品se一二三四| 久久久综合激的五月天| 日韩欧美中文视频| 久久精品官网| 日韩免费在线观看av| 日韩黄色大片| 久久久综合香蕉尹人综合网| 精品91福利视频| 国产v综合ⅴ日韩v欧美大片 | 亚洲男人第一天堂| 欧美日韩免费观看一区二区三区| 国产大片中文字幕在线观看| 中文字幕制服丝袜成人av| 黄色录像a级片| 国产老妇另类xxxxx| 熟女少妇精品一区二区| 亚洲国产免费| 日本一区二区三区四区五区六区| 国产亚洲电影| 久久国产精品久久精品国产| 亚洲精品视频一二三区| 国产日产久久高清欧美一区| 成人av三级| 久久久久免费视频| 超碰caoporn久久| 中文字幕国产精品| 蜜桃免费在线| 日韩电影中文字幕av| 性做久久久久久久久久| 9191久久久久久久久久久| av手机天堂网| 色婷婷久久久综合中文字幕| 久久久久久久黄色片| 亚洲午夜激情网页| 久久国产精品波多野结衣| 日韩毛片高清在线播放| 亚洲图片第一页| 国产精品午夜在线| 怡红院一区二区三区| 国产午夜久久久久| 中文字幕免费看| www激情久久| 人妻熟女aⅴ一区二区三区汇编| www.亚洲人| 中文字幕在线视频播放| 99久久精品免费看国产免费软件| 99riav国产精品视频| 国产成人自拍网| 欧美日韩一区二区区| 粉嫩在线一区二区三区视频| 91精品国产高清91久久久久久| 国产精品1区二区.| 91成人在线观看喷潮蘑菇| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产美女免费无遮挡| 91啪亚洲精品| 在线不卡av电影| 国产三级精品三级| 自拍偷拍你懂的| 亚洲欧洲精品一区二区三区| 中国一级片在线观看| 亚洲精选免费视频| 亚洲国产综合久久| 欧美视频在线观看免费| 国产suv精品一区二区33| 欧美午夜在线观看| 国产精品综合在线| 亚洲第一区在线观看| 天堂在线观看av| 亚洲欧美日韩天堂| 99se视频在线观看| 欧美刺激性大交免费视频| 97在线超碰| 欧美在线激情视频| 欧美xnxx| 99国产视频| 亚洲资源网你懂的| 伊人av成人| 亚洲三级色网| 国产又大又黄又粗的视频| 国模大尺度一区二区三区| 丰满人妻一区二区三区免费视频棣| av成人免费在线| 人妻互换一区二区激情偷拍| 一区二区三区在线免费| 国产午夜免费福利| 91精品国产免费久久综合| 男人的天堂a在线| 一区二区三欧美| 国产网红在线观看| 国产精品久久久久久久久久久新郎 | 亚洲专区在线| 九九九九九国产| 97久久久精品综合88久久| 男人的午夜天堂| 天天影视涩香欲综合网| 91丨九色丨丰满| 亚洲精品国产suv| 男人天堂手机在线| 欧美在线视频a| 日韩欧美高清一区二区三区| 欧美精品国产精品久久久| 欧美.www| 污污的网站18| wwwwxxxxx欧美| 久久国产精品国语对白| 色综合色狠狠天天综合色| 国产黄频在线观看| 国产一区二区日韩| sm久久捆绑调教精品一区| 成人黄色免费看| 视频一区在线观看| 欧美成人高潮一二区在线看| 精品在线观看免费| 国产1区2区在线观看| 婷婷开心激情综合| 亚洲第一视频在线播放| 日韩中文字幕网站| 欧美成人性网| 免费av一区二区三区| 黄色成人精品网站| 日本中文字幕在线不卡| 欧美国产精品劲爆| www.日韩一区| 亚洲女人天堂av| www在线看| 粉嫩av免费一区二区三区| 五月激情久久久| 污污网站免费观看| 国产午夜精品一区二区三区视频 | av不卡在线看| 丰满人妻一区二区三区大胸| 中文字幕视频一区| 中文字幕在线观看1| 亚洲欧美日韩综合| 亚洲欧洲自拍| 美乳视频一区二区| 久久都是精品| 黄色aaa视频| 一本久道久久综合中文字幕| 亚洲av成人精品毛片| 97色在线播放视频| 欧美一级一片| 波多野结衣家庭教师在线播放| 成av人片一区二区| 日本在线免费观看| 亚洲国产精品热久久| 两个人看的在线视频www| 国产乱人伦精品一区二区| 亚洲小说欧美另类社区| 91黄色免费视频| 精品美女永久免费视频| 色中色在线视频| 国产成人精品电影| 欧美在线观看视频一区| 日本中文字幕二区| 亚洲人午夜精品天堂一二香蕉| 国产高清第一页| 欧美激情在线观看| 欧美美女啪啪| 欧美国产日韩在线播放| 国产精品国产三级国产aⅴ入口 | 久久99国产精品久久99| 欧美一区免费观看| 精品卡一卡二卡三卡四在线| av资源在线| 日韩精品欧美在线| 精品一区二区国语对白| 精品97人妻无码中文永久在线| 精品久久久久久无| 成人短视频app| 青青草原国产免费| 成人综合婷婷国产精品久久| xxxx.国产| 久久精品91久久香蕉加勒比| 网站一区二区| 国产美女三级视频| 综合网在线视频| 免费观看成年人视频| 日本精品视频在线| 五月天久久777| 97香蕉碰碰人妻国产欧美| 色综合久久久久| 黄网页免费在线观看| 国产日韩精品一区观看| 热久久免费视频| 色在线观看视频| 亚洲视频视频在线| 国产一区二区在线观| 虎白女粉嫩尤物福利视频| 中文字幕一区二区三区精华液| 丁香六月天婷婷| 国产精品视频内| 亚洲每日在线| 日本精品在线免费观看| 日韩精品在线看| 亚洲精品观看| 国产探花在线看| 一本色道久久综合狠狠躁的推荐 | 天天操天天舔天天干|