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

【方向盤】版本歷史&代碼示例之:JAX-RS

開發 前端
本文詳細介紹了JAX-RS規范,并代碼演示了其官方推薦實現Jersey的使用。在Spring MVC大行其道的今天,由于Java EE技術仍有不少受眾群體(特別是國外開源軟件),所以此部分知識點依舊不可或缺。

前言

讀開源框架源碼,你會經常遇到Jersey。

Java EE 6引入了一項新技術:JAX-RS(Java API for RESTful Web Services),隸屬于JSR 311規范。該規范旨在定義一個統一的規范(主要是@Get、@Post這些注解),目標是讓Java 程序員可以使用一套固定的接口來開發REST應用,避免強依賴于具體的第三方框架技術,這一點和JPA的目的保持一致。

[[430747]]

可能你對JAX-RS感到陌生,但對它的參考實現Jersey,和其它實現如著名的Apache CXF、Axis以及JBooss的RESTEasy等等多少有些耳聞。在JAX-RC“出生”之際官方對其有過隆重介紹,擅長英文閱讀的同學這里看官方介紹:https://docs.oracle.com/javaee/6/tutorial/doc/giepu.html

本文將帶你走進JSR 311規范,演示通過Jersey構建REST服務,看看Eureka是如何使用Jersey的。另外,“競品”Spring MVC它為何成為了實際標準且還不去兼容JSR 311,膽子忒太了。

所屬專欄

  • 【方向盤】-Java EE

相關下載

  • 【本專欄源代碼】:https://github.com/yourbatman/FXP-java-ee
  • 【技術專欄源代碼大本營】:https://github.com/yourbatman/tech-column-learning
  • 【女媧Knife-Initializr工程】訪問地址:http://152.136.106.14:8761
  • 【程序員專用網盤】公益上線啦,注冊送1G超小容量,幫你實踐做減法:https://wangpan.yourbatman.cn
  • 【Java開發軟件包(Mac)】:https://wangpan.yourbatman.cn/s/rEH0 提取碼:javakit

版本約定

  • Java EE:6、7、8
  • Jakarta EE:8、9、9.1

正文

JAX-RS

JAX-RS全稱是:Java API for RESTful Services。它是一個社區驅動的標準,用于使用 Java 構建 RESTful Web 服務。它不僅定義了一套用于構建 RESTful 網絡服務的 API,同時也通過增強客戶端 API 功能簡化了REST 客戶端的構建過程。

話外音:既規范了Server服務端也規范了Client客戶端

Jersey的Server是基于Servlet構建的web應用,所以需要部署到任何實現Servlet容器里運行。由于它是一套標準規范,因此可以在不改任何代碼的情況下,任意切換JAX-RS實現框架。

JAX-RS常用注解

  • @Path:標注在類/方法上。類似于@RequestMapping中的path路徑
  • @GET,@PUT,@POST,@DELETE等:標注在方法上。含義你懂的。等同于這個注解@HttpMethod("GET/POST")@Produces:標注在類/方法上。可以返回的MIME類型
  • @Consumes:標注在類/方法上。可以接受的 MIME 類型
  • @PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam:分別獲取不同位置上的參數(@MatrixParam獲取數組/集合類型的value)
  • @DefaultValue:默認值
  • @ApplicationPath:標注在類上,表示本應用路徑。所有@Path的前綴,一個應用只需有一個
  • @BeanParam:標注在方法、方法參數、屬性上,since 2.0版本。效果類似于@RequestBody

Restful、JAX-RS、Jersey異同點

  • Restful:一種網絡應用程序的設計風格,基于http,適用于業務接口場景。它崇尚約定大于配置,有了統一的規范,在接口設計時能夠保證理解的一致性,所以對構建大型項目很友好
  • JAX-RS:它是Java EE的一向規范,實現了Restful風格。它通過Path將網絡上的資源唯一的標識出來。值得注意的是:它只提供標準,自己并沒提供實現
  • Jersey:一個框架,JAX-RS的官方參考實現。類似于Spring MVC一樣實現了MVC設計思想

Spring MVC對比Jersey

首先,Spring MVC是一個完整的 Web層框架,它除了提供JSON/XML的Restful處理能力之外,還包括對HTML以及其它模板(引擎)的支持。而Jersey只支持REST

說明:Spring MVC最初只支持處理Html等格式,直到2010年2月重磅發布了Spring 3.0版本,從此一騎絕塵,將其它框架越甩越遠

其次,Spring MVC是Spring家族的親兒子,和Spring容器天然集成。所以從集成的方便度來看,Jersey自然比不上Spring MVC。當然,你的應用可能并非構建在Spring之上,那么實現了Java EE/JAX-RS規范的Jersey的移植性可能更好,這也是為什么像Eureka這種開源框架選擇Jersey的原因

最后,Spring MVC和Jersey都是基于Servlet構建Web應用的(Spring 5后可選基于Reactor)。Spring MVC核心類為DispatcherServlet;Jersey核心類為ServletContainer

說明:Jersey和Spring框架整合的核心類為SpringServlet

  1. <!-- javax命名空間版本(Tomcat 9.x及以下版本支持) --> 
  2. <dependency> 
  3.     <groupId>javax.ws.rs</groupId> 
  4.     <artifactId>javax.ws.rs-api</artifactId> 
  5.     <version>2.1.1</version> 
  6. </dependency> 
  7.  
  8. <!-- jakarta命名空間版本(Tomcat 10.x及以上版本支持) --> 
  9. <dependency> 
  10.     <groupId>jakarta.ws.rs</groupId> 
  11.     <artifactId>jakarta.ws.rs-api</artifactId> 
  12.     <version>3.0.0</version> <!-- Jakarta命名空間 --> 
  13.     <!-- <version>2.1.6</version> 此版本命名空間同javax --> 
  14. </dependency> 

版本歷程

  • 2.0版本新特性:新增@BeanParam注解,可以將參數自動封裝進POJO(類似于@RequestBody注解);新增Client API來規范化客戶端的開發方式;增加了Filters和interceptors來分離關注點,更好的實現代碼復用;引入異步處理(在客戶端返回Future對象);引入Bean Validation支持;
  • 2.1版本新特性:對客戶端增加JSON-P和JSON-B的綁定實現

說明:Jersey從2.26版本起就適配JAX-RS 2.1新特性啦

生存現狀

JAX-RS隸屬于Java EE規范,但實際的規范已然易主:Spring MVC。它在國內幾乎不可見,但在海外崇尚Java EE的國度尚有一定忠誠粉絲。

總的來講:不容樂觀,不可忽視。

實現(框架)

  • Jersey:官方參考實現(推薦)
  • Apache CXF:開源的Web服務框架
  • RESTEasy:JBoss提供的實現
  • Restlet:最早的REST框架,先于JAX-RS出現
  • Apache Wink:一個是使用簡單,穩定的Java框架。包含服務器端模塊和客戶端模塊

代碼示例

使用官方參考實現Jersey來構建Server端Web程序。

加入Maven依賴:

  1. <dependencies> 
  2.     <!-- API規范 --> 
  3.     <!--<dependency>--> 
  4.     <!--    <groupId>jakarta.ws.rs</groupId>--> 
  5.     <!--    <artifactId>jakarta.ws.rs-api</artifactId>--> 
  6.     <!--    <version>2.1.6</version>--> 
  7.     <!--</dependency>--> 
  8.  
  9.     <dependency> 
  10.         <groupId>org.glassfish.jersey.core</groupId> 
  11.         <artifactId>jersey-server</artifactId> 
  12.     </dependency> 
  13.     <!-- 使用Servelt容器啟動,就得導入它 --> 
  14.     <dependency> 
  15.         <groupId>org.glassfish.jersey.containers</groupId> 
  16.         <artifactId>jersey-container-servlet</artifactId> 
  17.     </dependency> 
  18.     <!-- 若遇上java.lang.IllegalStateException: InjectionManagerFactory not found.異常,導入此包 --> 
  19.     <dependency> 
  20.         <groupId>org.glassfish.jersey.inject</groupId> 
  21.         <artifactId>jersey-hk2</artifactId> 
  22.     </dependency> 
  23.     <dependency> 
  24.         <groupId>javax.servlet</groupId> 
  25.         <artifactId>javax.servlet-api</artifactId> 
  26.         <scope>provided</scope> 
  27.     </dependency> 
  28. </dependencies> 

借助ResourceConfig書寫配置類來管理資源(這是方式之一,還可通過包掃描等方式注冊資源):

  1. /** 
  2.  * 相當于資源管理器,啟動此管理器就啟用了資源 
  3.  * 
  4.  * @author YourBatman. <a href=mailto:yourbatman@aliyun.com>Send email to me</a> 
  5.  * @site https://yourbatman.cn 
  6.  * @date 2021/10/24 17:22 
  7.  * @since 0.0.1 
  8.  */ 
  9. public class MyResourceConfig extends ResourceConfig { 
  10.  
  11.     // 在構造階段,暴露資源 
  12.     public MyResourceConfig() { 
  13.         register(HelloResource.class); 
  14.     } 

書寫一個資源(類似于Controller):

  1. /** 
  2.  * 在此處添加備注信息 
  3.  * 
  4.  * @author YourBatman. <a href=mailto:yourbatman@aliyun.com>Send email to me</a> 
  5.  * @site https://yourbatman.cn 
  6.  * @date 2021/10/24 17:24 
  7.  * @since 0.0.1 
  8.  */ 
  9. @Path("/hello"
  10. public class HelloResource { 
  11.  
  12.     @Path("/demo"
  13.     @GET 
  14.     @Produces(MediaType.TEXT_PLAIN) 
  15.     public String demo() { 
  16.         return "hello jax-rs..."
  17.     } 

書寫描述符web.xml:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 
  5.          version="4.0"
  6.  
  7.     <!-- Jersey調度入口 --> 
  8.     <servlet> 
  9.         <servlet-name>JerseyServlet</servlet-name
  10.         <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
  11.         <!-- 啟動Resource資源配置 --> 
  12.         <init-param> 
  13.             <param-name>javax.ws.rs.Application</param-name
  14.             <param-value>org.glassfish.jersey.server.ResourceConfig</param-value> 
  15.         </init-param> 
  16.         <!-- 通過掃包方式掃描Resource資源 --> 
  17.         <!--<init-param>--> 
  18.         <!--    <param-name>jersey.config.server.provider.packages</param-name>--> 
  19.         <!--    <param-value>cn.yourbatman.coding.jaxrs</param-value>--> 
  20.         <!--</init-param>--> 
  21.  
  22.         <load-on-startup>1</load-on-startup> 
  23.     </servlet> 
  24.     <servlet-mapping> 
  25.         <servlet-name>JerseyServlet</servlet-name
  26.         <url-pattern>/yourbatman/*</url-pattern> 
  27.     </servlet-mapping> 
  28.  
  29. </web-app> 

使用外置Tomcat,部署此war包:

啟動Tomcat,瀏覽器就可正常訪問http://localhost:9090/yourbatman/hello/demo了,如下圖:

完美!

Tips:若訪問時出現如下異常,請在pom里額外導入org.glassfish.jersey.inject:jersey-hk2這個jar即可解決。

上面是通過瀏覽器作為客戶端訪問HelloResource這個資源。其實,JAX-RS還提供了javax.ws.rs.client.Client客戶端規范,并且Jersey-Client也給予了實現。這里也簡單演示下:

導入Client依賴:

  1. <!-- Client無需單獨打包,因為jersey-server里已有。只有單獨使用Jersey Client時才需導入 --> 
  2. <!--<dependency>--> 
  3. <!--    <groupId>org.glassfish.jersey.core</groupId>--> 
  4. <!--    <artifactId>jersey-client</artifactId>--> 
  5. <!--</dependency>--> 

使用Jersey發送Http請求:

  1. /** 
  2.  * Jersey Client,發送Http請求 
  3.  * 
  4.  * @author YourBatman. <a href=mailto:yourbatman@aliyun.com>Send email to me</a> 
  5.  * @site https://yourbatman.cn 
  6.  * @date 2021/10/24 17:41 
  7.  * @since 0.0.1 
  8.  */ 
  9. public class JerseyClient { 
  10.  
  11.     public static void main(String[] args) { 
  12.         // ==== 創建Client的實例 === 
  13.         Client client = ClientBuilder.newClient(); 
  14.         WebTarget baseTarget = client.target("http://localhost:9090/yourbatman"); 
  15.  
  16.         // 具體請求 
  17.         WebTarget helloTarget = baseTarget.path("/hello/demo").queryParam("age""18"); 
  18.         // 發送get請求(可指定可接收的accept頭) 
  19.         Response response = helloTarget.request("*").get(); 
  20.         // Response response = helloTarget.request("text/plain""text/html""text/plain").get(); 
  21.  
  22.         // 打印結果 
  23.         int status = response.getStatus(); 
  24.         String result = response.readEntity(String.class); 
  25.         System.out.println("響應狀態碼為:" + status + ",響應值為:" + result); 
  26.     } 

運行main方法,控制臺輸出:

  1. 響應狀態碼為:200,響應值為:hello jax-rs... 

完美。

說明:Jersey Client底層使用JDK的HttpURLConnection發送Http請求,可通過其SPI機制替換成其它Connection

總結

本文詳細介紹了JAX-RS規范,并代碼演示了其官方推薦實現Jersey的使用。在Spring MVC大行其道的今天,由于Java EE技術仍有不少受眾群體(特別是國外開源軟件),所以此部分知識點依舊不可或缺。

國內的我們幾乎100%都是Spring技術棧的受眾,所以如果要選擇的話,當然推薦Spring,畢竟也好找工作得多得多嘛。所以說JAX-RS是官方標準,而Spring則是事實標準。

本文轉載自微信公眾號「Java方向盤」

 

責任編輯:姜華 來源: Java方向盤
相關推薦

2021-10-11 08:51:50

JavaMailJDBCJava

2021-10-08 06:50:32

版本歷史代碼

2009-09-22 13:04:19

ibmdwREST

2021-10-19 08:23:43

JMXJava 管理擴展

2021-09-15 18:54:22

BATutopia-JWebSocket

2009-12-23 09:50:45

JAX-RSJerseyRESTful

2009-12-22 09:57:36

Java EE 6RESTfulJAX-RS

2021-09-13 18:39:50

ServeltELJSP

2010-12-21 11:36:58

職場

2023-03-10 14:55:28

2021-11-01 07:55:39

Java EE開發項目

2018-01-15 09:32:34

無人駕駛GPU主機輔助駕駛

2021-12-20 08:15:25

SpringFeignClientSpring Clou

2022-04-11 08:34:27

IDEA代碼補全

2021-11-29 08:13:41

Spring Boot環境變量Spring技術

2022-01-06 09:38:13

集度自動駕駛apollo

2021-12-02 15:19:34

自動駕駛技術蘋果

2022-03-28 08:35:33

IDEA快捷鍵操作視窗

2022-04-06 08:35:13

IDEADebug調試Run運行
點贊
收藏

51CTO技術棧公眾號

黄大色黄女片18第一次| 欧美日韩国产综合在线| 久久久久久免费观看| 麻豆一区一区三区四区| 欧美在线高清视频| 91嫩草国产丨精品入口麻豆| 色婷婷av一区二区三区之e本道| 亚洲永久视频| 久久躁日日躁aaaaxxxx| 国产大学生视频| 亚洲国产尤物| 亚洲一区中文在线| 亚洲激情图片| 天天摸天天碰天天爽天天弄| 久久电影网站中文字幕| 97在线看免费观看视频在线观看| www中文在线| 日韩一级电影| 日韩一区二区视频| 杨幂毛片午夜性生毛片| 九色porny视频在线观看| 国产精品白丝在线| 噜噜噜噜噜久久久久久91| 国产成人精品一区二区无码呦| 水野朝阳av一区二区三区| 欧美高清一级大片| 欧美a级片免费看| 国产在线观看91一区二区三区| 精品国产电影一区二区| 日韩高清第一页| 久久91导航| 精品欧美激情精品一区| 成人黄色片免费| 麻豆网在线观看| 久久久午夜精品理论片中文字幕| 国产91亚洲精品一区二区三区| 91精品视频免费在线观看| 亚洲一区欧美二区| 97免费视频在线| 久久免费少妇高潮99精品| 香蕉久久网站| 少妇久久久久久| 欧美精品日韩在线| 精品色999| 国产亚洲福利一区| 好吊视频在线观看| 免费一区二区三区视频导航| 日韩大陆欧美高清视频区| 亚洲色偷偷色噜噜狠狠99网| 一区中文字幕电影| 精品国免费一区二区三区| 黑人无套内谢中国美女| 精品国产亚洲一区二区三区| 欧美丰满美乳xxx高潮www| 91亚洲免费视频| 久久亚洲资源中文字| 欧美日韩精品综合在线| 色播五月综合网| 日韩电影精品| 欧美精品丝袜久久久中文字幕| 伊人色在线观看| 久久久精品区| 精品国产乱码久久久久久夜甘婷婷| 性一交一黄一片| 91免费精品国偷自产在线在线| 亚洲精品一区二区三区精华液| 久久国产劲爆∧v内射| 国产美女撒尿一区二区| 亚洲精品国产精品乱码不99按摩| 性色av蜜臀av色欲av| 九一国产精品| 日韩中文字幕av| 麻豆精品国产免费| 亚洲网站啪啪| 欧日韩在线观看| 久久久久久av无码免费看大片| 麻豆91小视频| 国产精品v欧美精品v日韩| 五月婷婷六月丁香综合| 国产亚洲欧美中文| 黄瓜视频免费观看在线观看www| av在线免费网站| 欧美日韩国产精品专区| 亚洲高清在线免费观看| 亚洲第一二区| 日韩电影中文字幕在线观看| 国产三级短视频| 欧美日韩国产高清| 4438全国亚洲精品在线观看视频| 久草热在线观看| 国产激情偷乱视频一区二区三区 | 天天想你在线观看完整版电影免费| 狂野欧美性猛交xxxxx视频| 欧美特级www| 亚洲免费成人在线视频| 精品福利网址导航| 日韩中文字幕在线| 在线观看日韩中文字幕| 国产毛片一区二区| 麻豆亚洲一区| 在线观看男女av免费网址| 一本色道久久综合亚洲91| 亚洲成人手机在线观看| 婷婷综合福利| 欧美日本精品在线| 欧美视频xxxx| 99国产精品久| 国内自拍中文字幕| 三上悠亚国产精品一区二区三区| 日韩欧美在线一区二区三区| 日本xxxxxxxxx18| 亚洲国产精品一区| 国产一区深夜福利| 人成在线免费视频| 亚洲一区二区三区四区在线免费观看| 一区二区三区韩国| 欧美激情极品| 久久久久久久久久久网站| 亚洲综合网av| 国产夜色精品一区二区av| 欧美久久在线观看| 9999精品| 久久精品国亚洲| 男人天堂视频在线| www国产成人| 欧美人成在线观看| 日韩三级久久| 久久久精品网站| 中文字幕你懂的| 久久久久久久久久久久久女国产乱 | 国内外成人免费在线视频| 欧美韩一区二区| 国内精品一区二区三区| 亚洲国产欧美另类| 一区二区三区在线视频观看 | www.日韩精品| 又大又硬又爽免费视频| 视频一区在线| 欧美精品亚州精品| 99久久久久成人国产免费 | 久热这里只有精品6| 成人综合婷婷国产精品久久| 免费cad大片在线观看| 久久精品免视看国产成人| 久久久999国产| 国产精品一二三四五区| 中文字幕亚洲视频| 午夜剧场在线免费观看| 午夜国产一区二区| 成人做爰www免费看视频网站| 日本在线视频观看| 欧美精品丝袜中出| 国产盗摄一区二区三区在线| 国产精品资源在线| 欧美在线观看视频免费| 99这里只有精品视频| 久久久久久久国产| 天天操天天干天天爽| 欧美日韩美女在线| 熟女少妇内射日韩亚洲| 美女视频免费一区| 裸体裸乳免费看| eeuss鲁片一区二区三区| 97香蕉超级碰碰久久免费软件| 韩国av在线免费观看| 五月天欧美精品| 国产黄色网址在线观看| 日本午夜一区二区| 激情图片qvod| 麻豆精品99| 国产精品久久久精品| 男人的天堂在线视频免费观看 | 亚洲国产一区二区视频| 好吊色视频一区二区三区| 午夜一级在线看亚洲| 日韩成人av电影在线| 国产精一区二区| 68精品国产免费久久久久久婷婷| 欧美日韩在线中文字幕| 欧美日韩一区小说| 国产无精乱码一区二区三区| 久久久久久久久久看片| 亚洲精品乱码久久久久久动漫| 欧美午夜一区二区福利视频| 欧美日韩成人一区二区三区| 99热这里有精品| 456亚洲影院| 黄色精品在线观看| 日韩麻豆第一页| 国产精品一二三四五区| 欧美性猛交xxxx乱大交蜜桃| 五月婷婷综合激情网| av不卡一区二区三区| 中文字幕永久有效| 国产精品美女久久久浪潮软件| 天堂精品一区二区三区| 一区二区免费| 国产精品私拍pans大尺度在线| 曰本三级在线| 在线观看免费高清视频97| 亚洲免费视频网| 欧美日韩在线不卡| www..com国产| 亚洲免费观看高清完整版在线 | 琪琪亚洲精品午夜在线| 黄色免费在线网站| 国产小视频91| 亚洲欧美综合在线观看| 日韩欧美国产综合| 中文字幕乱码中文字幕| 欧美视频一二三| 精品少妇爆乳无码av无码专区| 中文字幕成人av| 三上悠亚ssⅰn939无码播放| 国产高清不卡二三区| 欧美一级特黄a| 麻豆9191精品国产| 日韩av新片网| 欧美在线黄色| 亚洲日本精品| 国产欧美日韩视频在线| 久久久综合亚洲91久久98| 日韩亚洲精品在线观看| 成人黄色av播放免费| 欧美精品高清| 日本欧美一级片| 男人av在线播放| 欧美精品videofree1080p| av色综合久久天堂av色综合在| 中文字幕亚洲图片| 国产高清美女一级毛片久久| 精品中文字幕久久久久久| 好男人www在线视频| 日韩欧美一卡二卡| 国产免费黄色大片| 51久久夜色精品国产麻豆| 中文字幕天堂在线| 欧美亚洲国产bt| 自拍偷拍精品视频| 欧美色网一区二区| 中文字幕一区二区在线视频| 欧美私模裸体表演在线观看| 无码人妻久久一区二区三区不卡| 天天综合日日夜夜精品| 毛片毛片女人毛片毛片| 富二代精品短视频| 中文字幕精品无码一区二区| 色综合久久天天| 无码视频一区二区三区| 欧美主播一区二区三区| 一区二区小视频| 在线播放亚洲一区| 国产黄色小视频在线观看| 日韩精品一区二区三区视频| 亚洲精品久久久久久动漫器材一区| 精品日韩一区二区| 午夜成人免费影院| 亚洲欧美中文日韩v在线观看| 免费成人av电影| 国产小视频国产精品| 欧美黑人激情| 日韩在线观看免费高清完整版| yellow91字幕网在线| 精品中文字幕在线观看| 国产在线天堂www网在线观看| 4p变态网欧美系列| 国产麻豆一区| 亚洲最大的网站| 欧美日韩破处| 先锋影音日韩| 欧美激情自拍| 国产超级av在线| 美腿丝袜一区二区三区| 极品人妻一区二区| 91小视频在线| 97在线观看视频免费| 亚洲国产视频一区| 波多野结衣黄色网址| 69堂国产成人免费视频| 日韩一级免费视频| 一个人www欧美| 色婷婷视频在线观看| 欧美亚洲在线播放| 电影91久久久| 高清av免费一区中文字幕| 欧美精品第一区| 黄色一级片网址| 国产精品女主播一区二区三区| 日日躁夜夜躁aaaabbbb| 国产99精品在线观看| 国产熟女一区二区| 亚洲免费在线视频| 精品国产xxx| 欧美tk—视频vk| 在线激情小视频| 国色天香2019中文字幕在线观看| 成人激情视屏| 精品国产福利| 91高清一区| 日韩无套无码精品| 大桥未久av一区二区三区中文| 天天躁夜夜躁狠狠是什么心态 | 日韩在线视频不卡| 欧美一区二区美女| 欧洲毛片在线| 久久久亚洲国产| 曰本一区二区| 日本在线播放一区| 99精品国产在热久久| 五月天开心婷婷| 欧美国产在线观看| 成人在线免费看视频| 日韩欧美激情一区| 黄色网在线看| 国产精品久久久久999| 日本国产精品| 精品一二三四五区| 国产乱淫av一区二区三区| 东京热无码av男人的天堂| 色综合天天综合网国产成人综合天 | 一区二区在线观看网站| 日韩中文字幕不卡| 亚洲成人网在线播放| 五月激情六月综合| 亚洲精品视频91| 九九精品视频在线| 成人国产精品久久| 一区二区三区在线视频看| 日韩av电影免费观看高清完整版| 7788色淫网站小说| 亚洲成av人影院| 秋霞av鲁丝片一区二区| 欧美多人乱p欧美4p久久| 国产一区二区三区视频在线| 亚洲欧洲精品一区二区| 蜜臀av一区二区| 91免费在线看片| 欧美人妇做爰xxxⅹ性高电影| 成在在线免费视频| 国产精品日韩在线播放| 日韩欧美1区| 一本一道久久a久久综合蜜桃| 国产精品电影一区二区三区| 伊人久久国产精品| 日日摸夜夜添一区| 国产亚洲观看| 50度灰在线观看| 东方aⅴ免费观看久久av| 亚洲精品视频在线观看免费视频| 亚洲第一av网| 亚洲精品88| 日韩久久精品一区二区三区| 日本亚洲视频在线| 免费三级在线观看| 日韩精品一区二区三区视频 | 欧美午夜一区二区三区| 色三级在线观看| 4444kk亚洲人成电影在线| 欧美精品成人| 亚洲调教欧美在线| 日本二三区不卡| 免费观看在线午夜影视| 97中文在线观看| 国产亚洲精品自拍| 日本高清黄色片| 日韩亚洲欧美在线| 毛片电影在线| 亚洲激情图片| 国产成人久久精品77777最新版本| 国产极品在线播放| 亚洲图片欧美日产| 亚洲欧洲二区| 加勒比成人在线| 国产蜜臀97一区二区三区| 99热这里精品| 91国内在线视频| 日韩欧美自拍| 男女一区二区三区| 欧美少妇一区二区| 国产丝袜视频在线播放| 日本精品一区二区三区不卡无字幕| 久草在线在线精品观看| 国产精品suv一区二区69| 国产香蕉精品视频一区二区三区| 免费一级欧美在线大片| wwwxxx黄色片| 一区二区视频在线| 国产在线观看免费| 99一区二区三区| 奇米影视一区二区三区| 精品肉丝脚一区二区三区| 正在播放欧美视频| 欧美电影在线观看免费| www.久久久久久久久久久| 污片在线观看一区二区| 麻豆视频网站在线观看| 欧美精品一区在线发布| 国产1区2区3区精品美女| 这里只有精品免费视频| 欧美激情在线观看视频|